我在我的Win7系统上安装了python 3.6,并试图让它在git bash(MINGW64)中工作,到目前为止无济于事。
我已经将安装目录(当然不是.exe)添加到PATH,没有结果。
即使我直接cd
到安装目录,它不会看到它。
$ python bash: python: command not found $ echo $PATH /c/Users/Aerovistae/bin:/mingw64/bin:/usr/local/bin:/usr/bin:/bin:/mingw64/bin:/usr/bin:/c/Users/Aerovistae/bin:/c/Windows/system32:/c/Windows:/c/Windows/System32/Wbem:/c/Windows/System32/WindowsPowerShell/v1.0:/c/Program Files/Intel/WiFi/bin:/c/Program Files/Common Files/Intel/WirelessCommon:/cmd:/c/Program Files (x86)/Skype/Phone:/c/Program Files/Intel/WiFi/bin:/c/Program Files/Common Files/Intel/WirelessCommon: C:/Users/Aerovistae/AppData/Local/Programs/Python/Python36-32:/usr/bin/vendor_perl:/usr/bin/core_perl $ cd C:/Users/Aerovistae/AppData/Local/Programs/Python/Python36-32 $ python bash: python: command not found $ python.exe bash: python.exe: command not found
如果我从该目录中尝试./python
,那么当我按下Enter键时,它会进入下一行,并允许我继续input,因为出于某种原因,对命令的期望更多。 ./python
不被认为是一个完整的命令,它正在等待closures,就好像我有一个开引号但没有closures引号。 无法弄清楚为什么。
我在这里错过了什么? 为什么不能运行.exe,即使我在目录中?
旁注,为什么它显示PATH
作为冒号分隔符而不是分号分隔符?
为什么它显示PATH为冒号分隔符而不是分号分隔符?
因为bash使用:
作为路径分隔符。 这意味着PATH环境变量中的C:/yadda/yadda
被解析为两个目录: C
和/yadda/yadda
。 如果仔细观察echo $PATH
输出,您会看到许多以/c/
开头的条目。 你的python安装条目是唯一使用C:/
。 在.bashrc或.profile中设置PATH时,应该使用/c/
notation。
还要注意前后路径名称和空格之间的空格:
。 前者肯定是有问题的。 我不确定后者,因为在设置PATH时我从不在这个位置添加空格。
如果我从该目录中尝试./python,那么当我按下Enter键时,它会进入下一行,并允许我继续输入,因为出于某种原因,对命令的期望更多。
根据@eryksun的评论:
您需要在正常的Windows控制台中运行bash.exe,或者,如果使用mintty终端,请强制Python通过python -i
使用交互模式。 mintty隐藏真正的控制台并将StandardInput
设置为名为\\.\pipe\msys-[UNIQUE_ID]-pty0-from-master
和StandardOutput
的管道,名称为\\.\pipe\msys-[UNIQUE_ID]-pty0-to-master
。 管道不是Windows中的字符设备,所以isatty
返回false,所以Python以非交互模式启动,除非通过-i
选项强制。