web-dev-qa-db-fra.com

Python ne fonctionne pas dans la ligne de commande de git bash

Python ne fonctionnera pas dans git bash (Windows). Lorsque je tape python dans la ligne de commande, cela me prend une ligne vide sans dire qu'il est entré dans python 2.7.10 comme dans Powershell. Cela ne me donne pas un message d'erreur, mais python ne s'exécute tout simplement pas.

Je me suis déjà assuré que les variables d'environnement dans PATH incluaient c:\python27. Que puis-je vérifier?


Une session dans laquelle ce problème se produit ressemble à ceci:

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

user@hostname MINGW64 ~
$ python

... assis là sans revenir à l'invite.

137
Caroline Morris

Entrez simplement ceci dans votre shell git sous windows -> alias python='winpty python.exe', c’est tout et vous allez avoir un alias pour l’exécutable python. Prendre plaisir 

P.S. Pour plus d’alias permanent, voir ci-dessous,

cd ~
touch .bashrc

ensuite, ouvrez .bashrc, ajoutez votre commande ci-dessus et enregistrez le fichier . Vous devez créer le fichier via la console ou vous ne pouvez pas l'enregistrer avec le nom approprié. Vous devez également redémarrer le shell pour appliquer le changement.

217
Vitaliy Terziev

Je ne vois pas l'option suivante dans une liste de réponses, mais je peux obtenir une invite interactive avec la touche "-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.
>>> 
53
vav

Ceci est un bogue connu dans MSys2, qui fournit le terminal utilisé par Git Bash. Vous pouvez contourner ce problème en exécutant une construction Python sans le support ncurses ou en utilisant WinPTY , utilisé comme suit:

Pour exécuter un programme de console Windows dans menthe ou Cygwin sshd, ajoutez le fichier console.exe à la ligne de commande:

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

Les binaires pré-construits pour msys sont susceptibles de fonctionner avec Git Bash. (Vérifiez s'il existe une version plus récente si un délai important s'est écoulé depuis la publication de cette réponse!).


À partir de Git pour Windows 2.7.1, essayez également d'utiliser winpty c:Python27/python.exe; WinPTY peut être inclus directement.

51
Charles Duffy

Je suis un utilisateur de Windows 10 et j’ai installé GIT dans mon système en acceptant simplement les valeurs par défaut.

Après avoir lu les réponses ci-dessus, j'ai 2 solutions pour moi et ces 2 solutions fonctionnent parfaitement sur GIT bash et me permettent d'exécuter des instructions Python sur GIT bash.

Je joins 3 images de mon terminal GIT bash. 1ère avec problème et les 2 derniers comme solutions.

PROBLÈME - Le curseur attend juste après avoir appuyé sur la commande python

 enter image description here

SOLUTION 1

Exécutez winpty <path-to-python-installation-dir>/python.exe sur le terminal GIT bash. 

Remarque: N'utilisez pas C:\Users\Admin comme style de chemin dans GIT bash, utilisez plutôt /C/Users/Admin.

Dans mon cas, j'ai exécuté la commande winpty /C/Users/SJV/Anaconda2/python.exe sur GIT bash

Ou si vous ne connaissez pas votre nom d'utilisateur, exécutez winpty /C/Users/$USERNAME/Anaconda2/python.exe

 enter image description here

SOLUTION 2

Il suffit de taper python -i et c'est tout.

 enter image description here

Merci.

27
hygull

En plus de la réponse de @ Charles-Duffy, vous pouvez utiliser winpty directement sans rien installer d’autre/que de le télécharger. Il suffit de lancer winpty c:/Python27/python.exe. L’utilitaire winpty.exe est disponible sur Git\usr\bin. J'utilise Git pour Windows v2.7.1

Les binaires pré-construits de @ Charles-Duffy sont la version 0.1.1 (selon le nom du fichier), tandis que celle incluse est 0.2.2

7
Xun Yang

En plus de @Vitaliy Terziev answer

essayez touch .bash_profile puis ajoutez un alias dans le fichier.

1
Linus Yang

Solution de contournement Git Bash - Lancer Python 2 et Python 3 avec des alias

SALUT. C’est (pour moi) la meilleure solution pour exécuter Python (Python 2.7 et Python 3.x) directement à partir de Git Bash sous Win 10 => en ajoutant des alias dans le fichier d’alias utilisé par Git Bash.

fichier d'alias Git Bash est aliases.sh. Il est situé dans:

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

1) Ouvrez (avec un éditeur de texte comme Atom ou autre) le aliases.sh

par exemple: dans mon cas le fichier est enC:\Software\Develop\Git\etc\profile.d\aliases.sh

2) Ajoutez votre alias pour Python

Dans mon casle python.exe est installé dans:

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

Donc vous devez créer 2 alias, un pour Python 2 (j'ai nommé python2) et l'autre pour Python 3 (j'ai nommé juste python) Git Bash utilise la structure de fichier linux. Vous devez donc changer le "\" pour "/" et si vous avez un chemin comme mon exemple Network Automation vous le mettez avec ""

"Automatisation du réseau", par ex.

winpty est la commande magique qui appellera l'exécutable.

Ajoutez donc ces lignes au début de aliases.sh

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) Ajoutez ou modifiez d'autres alias (si vous le souhaitez)

J'ai également modifié l'alias ll pour afficher tous les fichiers et dans une liste lisible par l'homme:

alias ll='ls -lah'

4) Enregistrez le fichier aliases.sh


5) OK !!! fermez et relancez votre Git Bash

Maintenant, en permanence, vous pouvez lancer les deux Python directement à partir de Git Shell en écrivant

$ python -> lancer Python 3

$ python2 -> lancer Python 2

$ ll -> entre un ls -lah pour afficher rapidement votre liste de fichiers détaillée

A bientôt, Harry

1
Harry

J'utilise MINGW64 via le code Visual Studio sous Windows 10 et j'essaie d'installer node-sass (qui nécessite python2). J'ai suivi felixrieseberg/windows-build-tools # 56 sur Github qui a résolu mon problème.

C'est un cas spécial, mais je poste au cas où quelqu'un aurait le même problème:

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

Ceci installe python et les autres outils de construction requis pour %USERPROFILE%\.windows-build-tools\python27.

1
Blaskovicz

Vous pouvez changer la cible du raccourci Git Bash à partir de:

"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

C’est ainsi que ConEmu lançait git bash (version 16). La version récente le démarre normalement et c’est comme ça que j’y suis arrivé ...

1
Igonato

Un autre exemple de ce problème consiste à utiliser l'interface de ligne de commande AWS Elastic Beanstalk (awsebcli, eb cli) à partir de git bash (MINGW64, Mintty) dans Windows (à l'aide de la version 2.1.0.0.windows.1 de Git). 

Je ne fais que poster cela parce que cela m'a pris un certain temps pour finir ici, à la recherche de problèmes spécifiques à eb-cli.

Des commandes telles que eb init ou eb config save, qui nécessitent une entrée de l'utilisateur, semblent pour provoquer un blocage/un blocage. En réalité, je suppose que la console n’a pas été mise à jour avec le texte demandant une saisie à l’utilisateur. De plus, eb deploy ne met à jour le texte de la console qu'après la fin de la commande, je ne peux donc pas voir les mises à jour de la progression avant d'avoir terminé.

Comme mentionné dans les git pour les notes de publication Windows (pour v2.19.0) et par ex. dans réponse de Xun Yang , une solution de contournement consiste à exécuter

winpty eb <command> (au lieu de eb <command>)

Une alternative, comme suggéré dans ce problème de git for windows , pourrait être d'utiliser la console native Windows au lieu de menthe (option lors de l'installation de git).

0
djvg

Pour python version 3.7.3 dans vscode avec gitbash comme terminal par défaut, je me suis occupé de cela pendant un moment, puis j'ai suivi le conseil de @Vitaliy Terziev d'ajouter l'alias à .bashrc, mais avec la spécification suivante:

alias python = ’“/c/Utilisateurs/mon nom d’utilisateur/AppData/Local/Programmes/Python/Python37/python.exe ”'

Remarquez la combinaison de guillemets simples et doubles entre eux à cause des espaces "mon nom d'utilisateur".

Pour moi, "winpty" ne pouvait pas résoudre le chemin python dans vscode.

0
Charlyboy

Essayez python -i au lieu de python, c'est une chose de curseur.

0
James

tapez: 'python winpty' et cela fonctionnera 

gitbash rencontre des problèmes lors de l’exécution d’une commande commençant par python. Cela vaut également pour toutes les commandes python manage.py. Commencez toujours par 'winpty python manage.py' Au moins, c'est ce qui fonctionne pour moi. Exécuter Windows 10. 

0
Bryce Regan LeFevre