2017-08-09 222 views
1

所以,我的计算机上安装了Anaconda,OSGeo和Python2.7。Windows命令行,“python3”指向错误python3.exe

我也使用Spyder。在Spyder中:

>>> import sys 
>>> sys.executable 
'C:\\ProgramData\\Anaconda3\\pythonw.exe' 

这就是我想要的。

然而,在Windows命令行和PowerShell:

$ python3 
>>> import sys 
>>> sys.executable 
'C:\\Progra~1\\OSGeo4W\\bin\\python3.exe' 

哪个我想要的。在命令行中使用python3时,我想使用'C:\\ProgramData\\Anaconda3\\pythonw.exe'(或python.exe,不确定)。

另外:

$ pip3 
Fatal error in launcher: Unable to create process using '"' 

我不知道为什么python3在Windows命令行点OSGeo的的版本Python3的。这里是我的path

C:\Python27\;C:\Python27\Scripts;C:\ProgramData\Anaconda3;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files\PuTTY\;C:\Progra~1\OSGeo4W\bin\;C:\Program Files\Microsoft\R Open\R-3.4.0\bin 

我也有叫PYTHONHOME

C:\ProgramData\Anaconda3 

而且(用于信息的完整性)的环境变量,我有蟒蛇2安装:

$ python 
    File "C:\ProgramData\Anaconda3\lib\site.py", line 177 
    file=sys.stderr) 
     ^
SyntaxError: invalid syntax 

$ pip输出相同的东西)。

当在Windows命令行中使用python3python(分别)时,python3和python2.7都可以工作,这将是一个不错的好处,但这并不是我的首选。

+0

Windows Python的大部分发行版(包括官方的PSF发行版)都不包含“python3.exe”文件。 pip恰好安装了“pip3”和“pip3.6”等,因为它遵循Unix约定。一般来说Windows Python并不遵循这个约定。的核心开发者为Windows Python的至少一个口头抗议,包括“pythonX.exe”和“pythonX.Y.exe”的文件,和大家一样,据我所知,几乎不关心,所以它的抗扭曲它。 – eryksun

回答

1

可能有几件事情,你必须照顾:

一般Windows路径的搜索顺序是从左向右开始系统路径中。第一个匹配元素获胜。在你的情况下,这是正确的,因为系统将首先搜索C:\ProgramData\Anaconda3\。但是在该文件夹中默认情况下不包含名为python3的可执行文件。在我的系统上,我创建了一个指向python.exe的simlink。在你的系统,你可以做到这一点在PowerShell中这样的:

New-Item -Path C:\ProgramData\Anaconda3\python3.exe -ItemType SymbolicLink -Value C:\ProgramData\Anaconda3\python.exe 

pip位于脚本\文件夹,以便你的情况,你必须添加C:\ProgramData\Anaconda3\ScriptsPATH并重新创建相应simlinks。在这种情况下,您必须创建其中的两个,因为pip.exe正在将其名称附加到正尝试呼叫的脚本(即,如果你的exe文件被称为foo.exe它会尝试调用foo-script.exe并不存在的),你可以用这两个命令创建在PowerShell中的simlinks:

New-Item -Path C:\ProgramData\Anaconda3\Scripts\pip3.exe -ItemType SymbolicLink -Value C:\ProgramData\Anaconda3\Scripts\pip.exe 

New-Item -Path C:\ProgramData\Anaconda3\Scripts\pip3-script.py -ItemType SymbolicLink -Value C:\ProgramData\Anaconda3\Scripts\pip-script.py 

这样你会能够从你的cmd行使用python3pip3。请检查您的python2安装文件夹的类似问题。

希望它有帮助。