git bash의 명령 줄에서 Python이 작동하지 않습니다.


236

파이썬은 git bash (Windows)에서 실행되지 않습니다. 명령 줄에 python을 입력하면 Powershell에서와 같이 2.7.10으로 python 2.7.10을 입력했다고 말하지 않고 빈 줄로 이동합니다. 그것은 나에게 오류 메시지를주지 않지만 파이썬은 실행되지 않습니다.

PATH의 환경 변수가 이미 포함되어 있는지 확인했습니다 c:\python27. 다른 무엇을 확인할 수 있습니까?


이 문제가 발생하는 세션은 다음과 같습니다.

user@hostname MINGW64 ~
$ type python
python is /c/Python27/python

user@hostname MINGW64 ~
$ python

... 프롬프트로 돌아 가지 않고 앉아 있습니다.


2
"아무 반응이 없습니다"? 오류가 없습니까? (말하려는 내용 : 오류 메시지가 표시되면 질문의 일부 여야합니다).
Charles Duffy

@ 재귀, bash는 실제로 PATH를 존중합니다. (하지만 변수의 자체 버전이 있습니다).
Charles Duffy

11
파이썬으로 입력 할 때 오류 메시지가 표시되지 않습니다. 그냥 빈 줄로 데려가지만 파이썬이 실제로 실행되고 있음을 보여주지 않습니다.
Caroline Morris

4
@CharlesDuff, 그녀는 분명히 찰스, 어떤 오류 메시지도하지 않았다. 배쉬가 멈춰요. 터미널을 정지시키는 것은 오류 메시지입니다.
Green

1
@ Green은 내 대답에서 분명히 알 수 있듯이 더 이상 명확성이 부족한 지점이 아니며 1 년 동안 더 나은 부분은 아닙니다. 더욱이이 글의 앞부분에있는 OP의 의견을 따르는 점에서 모호하지 않도록 편집하기 전까지는이 시점에서 문제가 명확하지 않았다 . 역사를 확인하십시오.
찰스 더피

답변:


361

windows->의 git shell에 이것을 입력하면됩니다 alias python='winpty python.exe'. 파이썬 실행 파일의 별칭이 있습니다. 즐겨

PS 영구적 인 별칭 추가는 아래를 참조하십시오.

cd ~
touch .bashrc

그런 다음 .bashrc를 열고 위에서 명령을 추가하고 파일을 저장하십시오. 콘솔을 통해 파일을 작성해야하거나 올바른 이름으로 저장할 수 없습니다. 변경 사항을 적용하려면 셸을 다시 시작해야합니다.


17
매력처럼 작동합니다.
Green

4
참고 : quit()인터프리터에서 벗어나 려면 Python 함수를 사용해야합니다 .
anishpatel

5
(Windows 표준) ^Z(ctrl-Z) + return를 사용하여 종료 할 수도 있습니다 .
Emil Styrke

6
또한 별명을 Windows와 다른 'python'파이썬으로 설정하려면 다음 구문을 사용하여 완전한 경로를 설정할 수 있습니다.alias python='winpty /c/Python27/python.exe'
ScottMcC

10
이것은 내가 인터넷에서 찾은 최고의 것입니다.
mdw7326

79

답변 목록에 다음 옵션이 표시되지 않지만 "-i"키를 사용하여 대화식 프롬프트를 얻을 수 있습니다.

$ python -i
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55)
Type "help", "copyright", "credits" or "license" for more information.
>>> 

-i argument : 스크립트가 첫 번째 인수로 전달되거나 -c 옵션이 사용되는 경우 sys.stdin이 터미널이 아닌 경우에도 스크립트 또는 명령을 실행 한 후 대화식 모드로 들어갑니다. PYTHONSTARTUP 파일을 읽지 못했습니다. docs.python.org/3/using/cmdline.html#cmdoption-i
Mercury

별칭 python = 'winpty python.exe' 보다 비용이 많이 니까?
PYK

1
이것은 모든 컴퓨터에서 작동하는 구성 노력이없는 옵션입니다.
vav

58

이것은 MSys2에서 알려진 버그이며 Git Bash가 사용하는 터미널을 제공합니다. ncurses를 지원하지 않고 Python 빌드를 실행하거나 다음과 같이 WinPTY 를 사용 하여이 문제해결할 수 있습니다.

mintty 또는 Cygwin sshd에서 Windows 콘솔 프로그램을 실행하려면 console.exe를 명령 줄 앞에 추가하십시오.

$ build/console.exe c:/Python27/python.exe
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 10 + 20
30
>>> exit()

MSYS에 대한 사전 구축 된 바이너리 힘내 배쉬와 일 가능성이 높다. (이 답변이 게시 된 후 상당한 시간이 지난 경우 최신 버전이 있는지 확인하십시오!).


Git for Windows 2.7.1부터는 winpty c:Python27/python.exe; WinPTY는 기본적으로 포함되어있을 수 있습니다.


2
설명해 주 build/console.exe c:/Python27/python.exe시겠습니까?-이것이 GitMsys 콘솔 또는 다른 방법으로 실행되어야합니까?
0leg

@ h3d0, 예, 터미널 내부. 물론 이것은 이것이 build디렉토리에 있다고 가정합니다 console.exe. 실제로 설치 한 위치 / 방법에 따라 경로를 적절히 업데이트하십시오.
Charles Duffy

1
@ h3d0 예, 추가 소프트웨어입니다. 내 답변에는 링크가 포함되어 있습니다.
Charles Duffy

7
winpty c:/Python27/python.exe추가 작업을 수행하지 않고도 로 사용할 수 있다고 생각합니다 . winpty.exe 유틸리티는 Git \ usr \ bin에 있습니다. 저는 Windows v2.7.1 용 Git을 사용하고 있습니다
Xun Yang

1
@ XunYang, ... winpty가 번들로 제공됩니까? 좋은! 적절하게 편집했습니다.
Charles Duffy

47

저는 Windows 10 사용자이며 기본값을 그대로 사용하여 시스템에 GIT 를 설치 했습니다.

위의 답변을 읽은 후, 나는 내 자신에 대한 2 개 솔루션을 가지고 이러한이 개 솔루션은 완벽하게 작동 GIT의 떠들썩한 파티와 파이썬 문 실행하기 위해 저를 용이하게 GIT의 bash는.

GIT bash 터미널의 이미지 3 개를 첨부하고 있습니다. 첫번째는 문제가 있고 후자는 해결책으로 2입니다.

문제 - python명령을 누른 후 커서가 대기 중입니다.

여기에 이미지 설명을 입력하십시오

솔루션 1

GIT bash 터미널 winpty <path-to-python-installation-dir>/python.exe에서 실행하십시오 .

참고 : GIT bash C:\Users\Admin에서 같은 경로 스타일을 사용하지 말고 대신을 사용하십시오 ./C/Users/Admin

제 경우에는 GIT bash에서 winpty /C/Users/SJV/Anaconda2/python.exe명령을 실행했습니다.

또는 사용자 이름 을 모르는 경우 실행하십시오.winpty /C/Users/$USERNAME/Anaconda2/python.exe

여기에 이미지 설명을 입력하십시오

솔루션 2

입력 만하면 python -i됩니다.

여기에 이미지 설명을 입력하십시오

감사.


2
winptyWindows Python Launcher에서도 작동 한다는 것을 알았습니다 . 따라서 alias py='winpty py'.bashrc에 있으면 정상으로 돌아갑니다.
Karl Knechtel

네, 그것은 당신에게 달려 있습니다. 삶을 개선하기 위해 어떻게 일을 관리합니까?
hygull

9

시도 python -i대신에 python, 그것은 커서 일입니다.


8

@ Charles-Duffy의 답변 외에도 추가 항목을 설치 / 다운로드하지 않고 winpty를 직접 사용할 수 있습니다. 그냥 실행하십시오 winpty c:/Python27/python.exe. winpty.exe 유틸리티는 Git \ usr \ bin에 있습니다. Windows v2.7.1에 Git을 사용하고 있습니다

@ Charles-Duffy의 사전 빌드 바이너리는 버전 0.1.1 (파일 이름에 따름)이고 포함 된 바이너리는 0.2.2입니다.


8

Git Bash 대안- 별칭으로 Python 2 및 Python 3 시작

안녕 . 이것은 Win 10 => Git Bash가 사용하는 별칭 파일에 별칭을 추가하여 Git Bash에서 직접 Python (Python 2.7 및 Python 3.x)을 모두 실행하는 가장 좋은 솔루션입니다.

Git Bash 별명 파일aliases.sh 입니다. 위치 :

C:\path where you installed Git\etc\profile.d\aliases.sh

1) aliases.sh를 엽니 다 (Atom과 같은 텍스트 편집기로).

예를 들어 : 내 경우 에는 파일이 C:\Software\Develop\Git\etc\profile.d\aliases.sh

2) 파이썬 별명 추가

내 경우에는 python.exe를가 에 설치됩니다

C:\Networking\Network Automation\Python 2.7\python.exe
C:\Networking\Network Automation\Python 3.7\python.exe

그래서 당신은이 별명, 파이썬이 하나 작성해야합니다 ( I라는 python2 )과 파이썬 3의 다른 ( 난 그냥 이름 파이썬 변경해야하므로) 힘내 배쉬는 리눅스 파일 구조를 사용하여 "\" 에 대한 "/" 당신 경우 내 예와 같이 경로가 네트워크 자동화를 당신이 그것을 넣어 ","

"네트워크 자동화" , 전합니다.

winpty는 실행 파일을 호출하는 마술 명령입니다.

따라서 별칭 의 시작 부분에이 줄을 추가하십시오.

alias python2='winpty C/Networking/"Network Automation"/"Python 2.7"/python.exe'
alias python='winpty C/Networking/"Network Automation"/"Python 3.7"/python.exe'

3) 다른 별칭 추가 또는 수정 (원하는 경우)

또한 모든 파일과 사람이 읽을 수있는 목록에 표시 되도록 ll 별칭을 수정했습니다 .

alias ll='ls -lah'

4) aliases.sh 파일을 저장하십시오


5) OK !!! Git Bash를 닫고 다시 시작하십시오.

이제 영구적으로 Git 셸에서 직접 두 Python을 모두 시작할 수 있습니다.

$ python -> 파이썬 3 시작

$ python2 -> 파이썬 2 시작

$ ll -> ls -lah를 입력하여 상세 파일 목록을 빠르게 표시합니다.

건배, 해리


5

Git Bash 단축키의 대상을 다음에서 변경할 수 있습니다.

"C:\Program Files\Git\git-bash.exe" --cd-to-home 

"C:\Program Files\Git\git-cmd.exe" --no-cd --command=usr/bin/bash.exe -l -i

이것이 ConEmu가 git bash (버전 16)를 시작하는 데 사용한 방식입니다. 최신 버전은 정상적으로 시작되며 내가 도착한 방법입니다 ...


이것은 나를 위해 일했습니다. bash.exe 인수가하는 일에 주목할 가치가 있습니까? man page says -l: bash가 로그인 쉘로 호출 된 것처럼 작동하게합니다 -i. -i 옵션이 존재하면 쉘은 대화식입니다
Day

ConEmu가 얼마 전에 winpty없이 잘 작동 했었고 내가 한 일을 완전히 잊었습니다. 감사합니다. 이전처럼 작동했습니다!
chaz

5

유형 : 'winpty python'이며 작동합니다.

gitbash는 파이썬으로 시작하는 명령을 실행할 때 몇 가지 문제가 있습니다. 이것은 모든 파이썬 manage.py 명령에도 적용됩니다. 항상 'winpty python manage.py'로 시작하십시오. 적어도 이것이 저에게 효과적입니다. Windows 10을 실행 중입니다.


2

@Vitaliy Terziev 답변 외에도

시도한 touch .bash_profile다음 파일에 별명을 추가하십시오.


1
.bashrc를 사용했지만 Git Bash를 열면 bashrc가 w.oa .bash_profile로 존재한다는 경고 메시지가 나타납니다. .bashrc의 이름을 .bash_profile로 바꾸고 경고가 사라졌습니다. 감사.
JustinDanielson

2

해결책이 아닌 두 가지 해결 방법 : 내 Git Bash에서 다음 명령이 중단되고 프롬프트가 표시되지 않습니다.

% python

그래서 나는 단지 다음을 사용한다 :

% winpty python

일부 사람들이 위에서 언급했듯이 다음을 사용할 수도 있습니다.

% python -i

.


1

Windows 10에서 Visual Studio Code를 통해 MINGW64를 사용하고 설치 중입니다 node-sass(필요합니다 python2). 나는 다음 felixrieseberg / 창 - 빌드 도구 # 56 내 문제를 해결 Github에서에 있습니다.

이것은 특별한 경우이지만 누군가 같은 문제가있는 경우에 게시하고 있습니다.

npm --add-python-to-path='true' --debug install --global windows-build-tools

파이썬 및 기타 필요한 빌드 도구를 설치합니다 %USERPROFILE%\.windows-build-tools\python27.


1

gitbash를 기본 터미널로 사용하는 vscode의 Python 버전 3.7.3의 경우이 문제를 잠시 처리 한 다음 @Vitaliy Terziev의 .bashrc에 별칭을 추가하는 다음 조언을 따랐습니다.

alias python = '“/ c / Users / 내 사용자 이름 /AppData/Local/Programs/Python/Python37/python.exe”'

“내 사용자 이름”공백으로 인해 작은 따옴표와 큰 따옴표의 조합에 주목하십시오.

나에게 "winpty"는 vscode에서 파이썬 경로를 확인할 수 없습니다.


0

이 문제의 또 다른 예는 Windows의 git bash (MINGW64, Mintty)에서 AWS Elastic Beanstalk 명령 줄 인터페이스 (awsebcli, eb cli)를 사용하는 것입니다 (git 버전 2.19.0.windows.1 사용).

eb-cli특정 문제를 검색하는 데 시간이 걸리기 때문에 이것을 게시하고 있습니다.

같은 명령 eb init또는 eb config save사용자의 입력을 요청, 표시 정지 / 동결을 일으킬 수 있습니다. 실제로 콘솔은 사용자 입력을 요청하는 텍스트로 업데이트되지 않은 것 같습니다. 또한 eb deploy명령이 완료된 후에 만 ​​콘솔 텍스트를 업데이트하므로 완료 될 때까지 진행률 업데이트가 표시되지 않습니다.

git for windows 릴리스 정보 (v2.19.0) 및 예를 들어 Xun Yang의 답변 에서 언급했듯이 해결 방법은 다음과 같습니다.

winpty eb <command>(단지 대신 eb <command>)

git for windows issue 에서 제안한 대안 은 민트 대신 Windows 기본 콘솔을 사용하는 것입니다 (git 설치 중 옵션).


0

나를 위해 일한 것은 위의 위대한 답변에서 앞에서 언급 한 것처럼 다음과 같은 별칭입니다. (아나콘다를 사용하고 있으므로 먼저 파이썬 경로가 어디 있는지 찾은 다음 git bash의 별칭에 추가하십시오) 1. 아나콘다 터미널에서 내가 실행 : where python 2. git bash에서 내가 실행 : alias python='winpty "C:\ProgramData\Anaconda3\envs\your_env_name\python.exe"' 3. 완료. 파이썬은 별칭을 사용하여 git Bash 내부에 정의됩니다.

도움이 되신 (Vitaliy Terziev & hygull)에게 감사합니다.


0
  1. python.exe -i"^ Z"(CTRL + Z)를 보내 대화식 모드를 종료하는 데 문제가 있습니다. 따라서 winpty python.exeWindows 용 Git Bash에서 사용하는 것이 좋습니다 .

  2. 사용 ~/bin디렉토리는 랩 / 참조 파일 (같은 만들려면 ~/bin/python(당신과 같은 다른 버전의 참조를 사용할 수 있습니다 어디서나 액세스 할 수있는을) ~/bin/python37).
    파일 내부의 코드 :

#!/usr/bin/env bash
# maybe declare env vars here like
# export PYTHONHOME=/c/Users/%USERNAME%/.python/Python36
# export PATH="${PATH}:/c/Users/%USERNAME%/.python/Python36"

# replace %USERNAME%,
# or use "~" instead of "/c/Users/%USERNAME%" if it works
winpty /c/Users/%USERNAME%/.python/Python36/python.exe ${@}

나는 당신이 항상 어디에서 왔는지 잊어 버리고 때로는 어떤 경우에는 문제를 야기하는이 "매직"별칭을 좋아하지 않습니다.

  1. 사용하여 ~/bin/python파일 및 -i매개 변수를 :
#!/usr/bin/env bash
if [ -z "${@}" ]; then
    # empty args, use interactive mode
    /c/Users/%USERNAME%/.python/Python36/python.exe -i
else
    /c/Users/%USERNAME%/.python/Python36/python.exe ${@}
fi

19480756 [sig] bash 2740! sigpacket::process: Suppressing signal 18 to win32 process (pid 14820)^Z대화식 모드로 전송 한 후의 응답 예제python.exe -i
Kirby

0

Python 대신 PY 명령을 입력하십시오. 통역사 호출 (python.org).


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.