web-dev-qa-db-fra.com

La console bash de Git 2.5.1 n'ouvre pas l'interpréteur python

Si je le fais dans CMD, cela fonctionne sans problème, mais si je l’essaye dans Git Bash, cela ne fonctionne pas. J'aime utiliser Git Bash comme seule console, mais je ne peux pas le faire si cela ne fonctionne pas avec Python 3.4.

L'exemple est dans l'image ci-dessous. Cela peut être facilement reproduit. Désinstallez Python et Git s’ils sont installés, installez Python 3.4, installez Git 2.5.1 et vous obtenez ce résultat.

 Console

Comment puis-je faire fonctionner l'interprète Python dans Git Bash?

26
Manu

Le terminal MinTTY qui est le nouveau terminal par défaut pour Git ne prend tout simplement pas en charge les programmes de console Windows. Je ne sais pas pourquoi la décision a été prise de changer le terminal par défaut, mais je connais quelques façons de contourner ce problème:

  1. Ecrivez un alias Bash pour lancer python avec winpty

Alias ​​Bash (mettre dans votre .bashrc):

alias python=winpty python.exe

Remarque : À partir de Git pour Windows 2.7.1, Winpty est inclus. winpty peut être trouvé installé à Git\usr\bin.


  1. Ecrivez un alias Bash pour lancer python en mode interactif s'il n'y a pas d'argument:

Alias ​​Bash (mettre dans votre .bashrc):

function maybe_python34() {
    if [ $# -eq 0 ]; then
        /c/Python34/python.exe -i
    else
       /c/Python34/python.exe $@
    fi
}

alias python=maybe_python34

  1. Lancer explicitement python en mode interactif

Notez que cela peut ne pas fonctionner correctement avec les touches de direction pour parcourir l'historique des commandes:

python -i

Ou pour les scripts:

python script.py
40
Darthfett

Vous devez expliciter le mode interactif python: python -i

Vous pouvez définir un alias dans votre fichier .bashrc: alias python = 'python -i', mais vous ne pourrez pas exécuter de script (par exemple: python script.py} ).

Trouvé ici: Utilisation de Windows Python de Cygwin

10
besil

Construire sur la réponse de @ Darthfett. Je devais m'assurer qu'il y avait des guillemets et ne pas faire référence aux fichiers .exe 

Donc à la fin de votre .bashrc

alias python='winpty python' alias pip='winpty pip' # Rescue pip as well

Alors est tout fonctionne

Python

Tawanda@Tawanda-PC MINGW64 ~
$ alias python='winpty python'

Tawanda@Tawanda-PC MINGW64 ~
$ python
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

Pépin

Tawanda@Tawanda-PC MINGW64 ~
$ alias pip='winpty pip'

Tawanda@Tawanda-PC MINGW64 ~
$ pip -v

Usage:
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  list                        List installed packages.
  show                        Show information about installed packages.
4
Dr Manhattan

Il essaie d'ouvrir la console pour la sortie. Sauf si vous compilez python ou obtenez une version pour mingw, vous aurez peut-être besoin de quelque chose comme:

WinPty

3
andygavin

Merci pour le answer de @darthfett, qui résout en grande partie le problème!

Juste pour info: le même symptôme existe également lorsque votre script utilise import getpass; getpass.getpass(), et dans ce cas, python -i your_script.py NE le réparera PAS, mais winpty python your_script.py fonctionne toujours comme un charme. (Heureusement qu’ils ont au moins fourni à Winpty des versions récentes de Git For Windows non livrées.)

Donc, pour configurer une fois (par environnement virtuel) et l’oublier, vous pouvez ajouter cette ligne à la fin de votre env/Script/activate:

alias python='winpty python.exe'

Cela fonctionnera dans cette console bash. (Cependant, si vous êtes un utilisateur de vim, cela ne fonctionnera toujours pas dans un vim lorsque vous utiliserez :python my_script.py dans vim.)

2
RayLuo

Lors de l’installation de git pour Windows, choisissez d’utiliser la fenêtre de console par défaut de Windows, comme indiqué dans l’illustration ci-dessous. Cette option vous permet d’utiliser un python interactif ou un nœud js. De plus, getpass fonctionne sur cette console.

entrez la description de l'image ici

0
knaggita

Lors de l’installation de git pour Windows, choisissez d’utiliser la fenêtre de console par défaut de Windows, comme indiqué dans le picture . Cette option vous permet d’utiliser un python interactif ou un nœud js. De plus, getpass fonctionne sur cette console.

0
knaggita

Vous pouvez configurer la console git bash en éditant le fichier dans votre "$ HOME/.bashrc"

Ajouter cette ligne à votre $HOME/.bashrc 

export PATH=$PATH;c:/python34
0
edi9999