it-swarm.com.de

Python funktioniert nicht in der Kommandozeile von git bash

Python wird nicht in git bash (Windows) ausgeführt. Wenn ich in der Befehlszeile Python eingebe, gelangt man zu einer leeren Zeile, ohne zu sagen, dass er in Python 2.7.10 wie in Powershell eingegeben wurde. Es gibt keine Fehlermeldung, aber Python läuft einfach nicht.

Ich habe bereits sichergestellt, dass die Umgebungsvariablen in PATH c:\python27 enthalten sind. Was kann ich noch prüfen?


Eine Sitzung, bei der dieses Problem auftritt, sieht folgendermaßen aus:

[email protected] MINGW64 ~
$ type python
python is /c/Python27/python

[email protected] MINGW64 ~
$ python

... dort sitzen, ohne zum Prompt zurückzukehren.

137
Caroline Morris

Geben Sie dies einfach in Ihre Git-Shell unter Windows ein -> alias python='winpty python.exe', das ist alles und Sie werden einen Alias ​​für die ausführbare Python-Datei haben. Genießen 

P.S. Für permanenten Alias-Zusatz siehe unten

cd ~
touch .bashrc

Öffnen Sie dann .bashrc, fügen Sie Ihren Befehl von oben hinzu und speichern Sie die Datei. Sie müssen die Datei über die Konsole erstellen, oder Sie können sie nicht mit dem richtigen Namen speichern. Sie müssen auch die Shell neu starten, um die Änderung zu übernehmen.

217
Vitaliy Terziev

Die nächste Option wird in einer Antwortliste nicht angezeigt, aber ich kann interaktive Eingabeaufforderung mit der Taste "-i" erhalten:

$ 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.
>>> 
53
vav

Dies ist ein bekannter Fehler in MSys2, der das von Git Bash verwendete Terminal bereitstellt. Sie können dies umgehen, indem Sie ein Python-Build ohne Unterstützung für ncurses ausführen oder WinPTY verwenden, das folgendermaßen verwendet wird:

Um ein Windows-Konsolenprogramm in mintty oder Cygwin sshd auszuführen, stellen Sie console.exe an die Befehlszeile an:

$ 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()

Die vorgefertigten Binärdateien für msys funktionieren wahrscheinlich mit Git Bash. (Prüfen Sie, ob es eine neuere Version gibt, wenn seit der Veröffentlichung dieser Antwort viel Zeit vergangen ist!).


Versuchen Sie ab Git für Windows 2.7.1 auch, winpty c:Python27/python.exe zu verwenden. WinPTY kann bereits im Lieferumfang enthalten sein.

51
Charles Duffy

Ich bin Windows 10-Benutzer und habe GIT in meinem System installiert, indem ich einfach die Standardeinstellungen akzeptiere.

Nachdem ich die obigen Antworten gelesen hatte, habe ich 2 Lösungen für meine eigenen gefunden, und diese 2 Lösungen funktionieren perfekt auf GIT bash und erleichtern mir die Ausführung von Python-Anweisungen auf GIT bash.

Ich füge 3 Bilder meines GIT bash Terminals hinzu. 1. mit Problem und die letzten 2 als Lösungen.

PROBLEM - Der Cursor wartet nur auf den Befehl python

 enter image description here

LÖSUNG 1

Führen Sie winpty <path-to-python-installation-dir>/python.exe auf GIT bash terminal aus. 

Hinweis: Verwenden Sie C:\Users\Admin nicht wie einen Pfadstil in GIT bash. Verwenden Sie stattdessen /C/Users/Admin.

In meinem Fall habe ich winpty /C/Users/SJV/Anaconda2/python.exe command auf GIT bash ausgeführt

Oder wenn Sie Ihren Benutzername nicht kennen, führen Sie winpty /C/Users/$USERNAME/Anaconda2/python.exe aus.

 enter image description here

LÖSUNG 2

Geben Sie einfach python -i ein und das ist es.

 enter image description here

Vielen Dank.

27
hygull

Zusätzlich zu der Antwort von @ Charles-Duffy können Sie winpty direkt verwenden, ohne zusätzliche Dateien installieren/herunterladen zu müssen. Führen Sie einfach winpty c:/Python27/python.exe aus. Das Dienstprogramm winpty.exe befindet sich unter Git\usr\bin. Ich verwende Git für Windows v2.7.1

Die vorgefertigten Binärdateien von @ Charles-Duffy sind Version 0.1.1 (je nach Dateiname), während die mitgelieferte Binärdatei 0.2.2 ist

7
Xun Yang

Neben @Vitaliy Terziev antworten

versuchen Sie touch .bash_profile und fügen Sie der Datei dann einen Alias ​​hinzu.

1
Linus Yang

Git Bash Workaround- Starte Python 2 & Python 3 mit Aliasen

HALLO. Dies ist (für mich) die beste Lösung, um sowohl Python (Python 2.7 als auch Python 3.x) direkt von Git Bash unter Win 10 aus auszuführen => Hinzufügen von Aliasen zu der von Git Bash verwendeten Aliase-Datei.

Git Bash Aliase-Datei ist Aliase.sh . Es liegt in:

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

1) Öffne (mit einem Texteditor wie Atom oder einem anderen) die aliases.sh

zum Beispiel: in meinem Fall die Datei ist in C:\Software\Develop\Git\etc\profile.d\aliases.sh

2) Füge deinen Alias ​​für Python hinzu

In meinem Fall die python.exe sind installiert in:

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

Also müssen Sie 2 Aliase erstellen, einen für Python 2 ( Ich nannte Python2 ) und den anderen für Python 3 ( Ich nannte nur Python ) Git Bash verwendet die Linux-Dateistruktur, daher müssen Sie das "\" für "/" ändern und wenn Sie einen Pfad wie in meinem Beispiel haben Network Automation du setzt es mit ""

"Network Automation" , zum Beispiel

winpty ist der magische Befehl, der die ausführbare Datei aufruft.

Also füge diese Zeilen am Anfang von aliases.sh hinzu

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) Füge andere Aliase hinzu oder ändere sie (wenn du willst)

Ich habe auch den ll -Alias ​​geändert, um alle Dateien in einer für Menschen lesbaren Liste anzuzeigen:

alias ll='ls -lah'

4) Speichern Sie die Datei aliases.sh


5) OK !!! schließe und starte deinen Git Bash neu

Jetzt können Sie permanent beide Pythons direkt von Git Shell aus starten, indem Sie nur schreiben

$ python -> starte Python 3

$ python2 -> starte Python 2

$ ll -> gibt ein ls -lah ein, um schnell Ihre detaillierte Dateiliste anzuzeigen

Prost, Harry

1
Harry

Ich verwende MINGW64 über Visual Studio Code unter Windows 10 und versuche, node-sass zu installieren (was python2 erfordert). Ich folgte felixrieseberg/windows-build-tools # 56 auf Github, was mein Problem löste.

Dies ist ein Sonderfall, aber ich poste, falls jemand dasselbe Problem hat:

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

Dadurch werden Python und andere erforderliche Build-Tools für %USERPROFILE%\.windows-build-tools\python27 installiert.

1
Blaskovicz

Sie können das Ziel für die Git Bash-Verknüpfung folgendermaßen ändern:

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

zu 

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

Auf diese Weise hat ConEmu git bash (Version 16) gestartet. Die neueste Version startet normal und so bin ich dorthin gekommen ...

1
Igonato

Ein anderes Beispiel für dieses Problem ist die Verwendung der AWS Elastic Beanstalk-Befehlszeilenschnittstelle (awsebcli, eb cli) aus der Git-Bas (MINGW64, Mintty) in Windows (unter Verwendung der Git-Version 2.19.0.windows.1). 

Ich poste dies nur, weil es eine Weile dauerte, bis ich hier auf der Suche nach eb-cli spezifischen Problemen war.

Befehle wie eb init oder eb config save, für die eine Benutzereingabe erforderlich ist, erscheinen, um ein Einfrieren/Hängen zu verursachen. In Wirklichkeit denke ich, dass die Konsole nicht mit dem Text aktualisiert wird, der eine Benutzereingabe anfordert. Außerdem aktualisiert eb deploy nur den Konsolentext, nachdem der Befehl abgeschlossen wurde. Daher sehe ich keine Fortschrittsaktualisierungen, bis der Vorgang abgeschlossen ist.

Wie in den git for windows-Versionshinweisen erwähnt, _ (für v2.19.0) und z. In Xun Yangs Antwort soll ein Workaround ausgeführt werden

winpty eb <command> (statt nur eb <command>)

Eine Alternative, wie in diesem git for windows issue vorgeschlagen, könnte die Verwendung der Windows-Konsole anstelle von mintty sein (Option während der Installation von git).

0
djvg

Für Python-Version 3.7.3 in vscode mit gitbash als Standardterminal habe ich mich eine Weile damit beschäftigt und dann @Vitaliy Terzievs Rat gefolgt, den Alias ​​zu .bashrc hinzuzufügen, aber mit der folgenden Spezifikation:

alias python = "/ c/Users/mein Benutzername/AppData/Local/Programs/Python/Python37/python.exe" "

Beachten Sie die Kombination aus einfachen und doppelten Anführungszeichen aufgrund der Leerzeichen für "Mein Benutzername".

Für mich konnte "winpty" den Python-Pfad in vscode nicht auflösen.

0
Charlyboy

Versuchen Sie python -i anstelle von python, es ist eine Cursorsache.

0
James

typ: 'Winpty Python' und es wird funktionieren 

gitbash hat einige Probleme, wenn Sie einen Befehl ausführen, der mit Python beginnt. Dies gilt auch für alle Python-Befehle manage.py. Beginnen Sie immer mit 'winpty python manage.py'. Dies funktioniert zumindest für mich. Windows 10 ausführen. 

0