![](/img/trans.png)
[英]What are exactly the standard streams if there's no terminal/console window open for the python interpreter?
[英]Git 2.5.1's bash console doesn't open python interpreter
MinTTY終端是Git的新默認終端,它不支持Windows控制台程序。 我不知道為什么決定更改默認終端,但我知道有幾種方法可以解決這個問題:
Bash別名(放在你的.bashrc中):
alias python=winpty py.exe
注意 :從Git for Windows 2.7.1開始,Winpty開箱即用。 可以在Git\\usr\\bin
找到winpty。
Bash別名(放在你的.bashrc中):
function maybe_py() {
if [ $# -eq 0 ]; then
/c/Windows/py.exe -i
else
/c/Windows/py.exe $@
fi
}
alias python=maybe_py
請注意,使用箭頭鍵瀏覽命令歷史記錄可能無法正常工作:
py -i
或者對於腳本:
py script.py
什么是py.exe?
如果您想知道為什么我引用C:\\Windows\\py.exe
而不是特定的python.exe
安裝,我想解釋一下使用它的一些好處( 適用於Windows的Python啟動器 :
要更改首選/系統安裝(例如,用於交互模式),請參閱此答案 。
你需要顯式的python交互模式: python -i
您可以在.bashrc中定義別名: 別名python ='python -i' ,但是這樣做,您將無法運行腳本文件(即: python script.py )。
在這里找到: 使用Cygwin的Windows Python
建立@ Darthfett的答案。 我必須確保有引號,而不是引用.exe文件
所以最后你的.bashrc
alias python='winpty python' alias pip='winpty pip' # Rescue pip as well
一切都是有效的
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()
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.
它試圖打開控制台輸出。 除非您編譯python或獲取mingw的版本,否則您可能需要以下內容:
感謝@darthfett的回答 ,這在很大程度上解決了這個問題!
僅供參考:當您的腳本使用import getpass; getpass.getpass()
時,也存在相同的症狀import getpass; getpass.getpass()
import getpass; getpass.getpass()
,在這種情況下python -i your_script.py
不會修復它,但winpty python your_script.py
仍然像魅力一樣。 (幸運的是,他們至少在最新版本的Git For Windows中提供了Winpty。)
因此,要設置一次(每個虛擬環境)並忘記它,您可以在env/Script/activate
的末尾附加此行:
alias python='winpty python.exe'
它將在該bash控制台中工作。 (但是,如果你碰巧是一個vim用戶,當你這樣做時,它仍然無法在vim中運行:python my_script.py
在vim中使用:python my_script.py
。)
您可以通過編輯“$ HOME / .bashrc”中的文件來配置git bash控制台
將此行添加到$HOME/.bashrc
export PATH=$PATH;c:/python34
在為Windows安裝git時,選擇使用Windows默認控制台窗口,如下圖所示。 此選項允許您使用交互式python或nodejs。 getpass也適用於此控制台。
當安裝Windows的混帳,選擇使用Windows默認的控制台窗口,如圖所示畫面 。 此選項允許您使用交互式python或nodejs。 getpass也適用於此控制台。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.