La consola de bash de Git 2.5.1 no abre el intérprete de Python
python 3 (8)
Al instalar git para Windows, elija usar la ventana de la consola predeterminada de Windows como se muestra en la imagen . Esta opción le permite utilizar python o nodejs interactivos. También funciona getpass en esta consola.
Si lo hago en CMD, funciona sin problemas, pero si lo intento en Git Bash no funciona. Me gusta usar Git Bash como mi única consola, pero no puedo hacerlo si no funciona con Python 3.4.
El ejemplo está en la imagen de abajo. Esto se puede reproducir fácilmente. Desinstale Python y Git si están instalados, instale Python 3.4, instale Git 2.5.1 y obtendrá ese resultado.
¿Cómo puedo hacer que el intérprete de Python funcione en Git Bash?
Al instalar git para Windows, elija usar la ventana de la consola predeterminada de Windows como se muestra en la imagen a continuación. Esta opción le permite utilizar python o nodejs interactivos. También funciona getpass en esta consola.
Construyendo sobre la respuesta de @Darthfett. Tenía que asegurarme de que hubiera comillas y no hacer referencia a los archivos .exe
Así que al final en tu .bashrc
alias python=''winpty python'' alias pip=''winpty pip'' # Rescue pip as well
Entonces es todo funciona
Pitón
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()
Pipa
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.
El terminal MinTTY que es el nuevo terminal predeterminado para Git simplemente no es compatible con los programas de la consola de Windows. No sé por qué se tomó la decisión de cambiar el terminal predeterminado, pero conozco algunas maneras de solucionar esto:
- Escribe un alias de Bash para lanzar python con winpty
Alias Bash (poner en su .bashrc):
alias python=winpty python.exe
Nota : A partir de Git para Windows 2.7.1, Winpty se incluye fuera de la caja. Se puede encontrar winpty instalado en Git/usr/bin
.
- Escriba un alias de Bash para iniciar python en modo interactivo si no hay argumentos:
Alias Bash (poner en su .bashrc):
function maybe_python34() {
if [ $# -eq 0 ]; then
/c/Python34/python.exe -i
else
/c/Python34/python.exe $@
fi
}
alias python=maybe_python34
- Lanzar python en modo interactivo explícitamente
Tenga en cuenta que esto puede no funcionar correctamente con las teclas de flecha para examinar el historial de comandos:
python -i
O para los guiones:
python script.py
Está intentando abrir la consola para la salida. A menos que compiles python u obtengas una versión para mingw, puedes necesitar algo como:
Gracias por la answer @darthfett, que resuelve el problema en gran medida.
Solo para su información: El mismo síntoma también existe cuando su secuencia de comandos está usando import getpass; getpass.getpass()
import getpass; getpass.getpass()
, y en este caso python -i your_script.py
NO lo solucionará, pero winpty python your_script.py
todavía funciona como un encanto. (Por suerte, al menos proporcionan Winpty de fábrica con versiones recientes de Git para Windows).
Entonces, para configurar una vez (por entorno virtual) y olvidarlo, puede agregar esta línea al final de su env/Script/activate
:
alias python=''winpty python.exe''
Funcionará en esa consola bash. (Sin embargo, si eres un usuario vim, aún no funcionará dentro de vim cuando lo hagas :python my_script.py
in vim).
Necesitas explícito el modo interactivo de python : python -i
Puede definir un alias en su .bashrc: alias python = ''python -i'' , pero al hacer esto, no podrá ejecutar un archivo de script (es decir, python script.py ).
Encontrado aquí: Usando Windows Python de Cygwin
Puede configurar la consola git bash editando el archivo en su "$ HOME / .bashrc"
Agregue esta línea a su $HOME/.bashrc
export PATH=$PATH;c:/python34