Git 2.5.1 bash консоль не открывает интерпретатор python
Если я делаю это в CMD, он работает без проблем, но если я попробую его в Git Bash, это не сработает. Мне нравится использовать Git Bash в качестве моей единственной консоли, но я не могу этого сделать, если она не работает с Python 3.4.
Пример приведен на рисунке ниже. Это можно легко воспроизвести. Удалите Python и Git, если они установлены, установите Python 3.4, установите Git 2.5.1 и получите этот результат.
![Консоль]()
Как я могу заставить интерпретатор Python работать в Git Bash?
Ответы
Ответ 1
Терминал MinTTY, который является новым терминалом по умолчанию для Git, просто не поддерживает консольные программы Windows. Я не знаю, почему было принято решение изменить терминал по умолчанию, но я знаю несколько способов обойти это:
- Напишите псевдоним Bash для запуска python с winpty
Bash Псевдоним (введите в .bashrc):
alias python=winpty python.exe
Примечание. Начиная с Git для Windows 2.7.1, Winpty включен из коробки. winpty можно найти в Git\usr\bin
.
- Напишите псевдоним Bash для запуска python в интерактивном режиме, если нет аргументов:
Bash Псевдоним (введите в .bashrc):
function maybe_python34() {
if [ $# -eq 0 ]; then
/c/Python34/python.exe -i
else
/c/Python34/python.exe [email protected]
fi
}
alias python=maybe_python34
- Запустить питон в интерактивном режиме явно
Обратите внимание, что это может работать неправильно с помощью клавиш со стрелками для просмотра истории команд:
python -i
Или для скриптов:
python script.py
Ответ 2
Вам нужен явный интерактивный режим python: python -i
Вы можете определить псевдоним в вашем .bashrc: alias python = 'python -i', но при этом вы не сможете запустить файл script (то есть: python script.py).
Найдено здесь:
Использование Windows Python из Cygwin
Ответ 3
Он пытается открыть консоль для вывода. Если вы не скомпилируете python или не получите версию для mingw, вам может понадобиться что-то вроде:
WinPty
Ответ 4
Вы можете настроить консоль git bash, отредактировав файл в "$ HOME/.bashrc"
Добавьте эту строку в свой $HOME/.bashrc
export PATH=$PATH;c:/python34
Ответ 5
Спасибо за @darthfett answer, что в значительной степени решает проблему!
Только FYI: тот же симптом существует, когда ваш script использует import getpass; getpass.getpass()
, и в этом случае python -i your_script.py
НЕ исправит его, но winpty python your_script.py
по-прежнему работает как шарм. (К счастью, они по крайней мере предоставляют Winpty из коробки с последними версиями Git Для Windows.)
Итак, чтобы установить один раз (для каждой виртуальной среды) и забыть об этом, вы можете добавить эту строку в конце своего env/Script/activate
:
alias python='winpty python.exe'
Он будет работать в консоли bash. (Однако, если вы оказались пользователем vim, он все равно не будет работать внутри vim, когда вы выполняете :python my_script.py
в vim.)
Ответ 6
Основываясь на ответе @Darthfett. Я должен был убедиться, что есть кавычки и не ссылаются на файлы .exe.
Итак, в конце в .bashrc
alias python='winpty python'
alias pip='winpty pip' # Rescue pip as well
Затем все работает
Python
[email protected] MINGW64 ~
$ alias python='winpty python'
[email protected] 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()
Pip
[email protected] MINGW64 ~
$ alias pip='winpty pip'
[email protected] 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.