所以,我的计算机上安装了Anaconda,OSGeo和Python2.7。
我也在使用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'
不我想要的是什么。在命令行中使用'C:\\ProgramData\\Anaconda3\\pythonw.exe'
时,我想使用python.exe
(或python3
,不确定)。
另外:
$ pip3
Fatal error in launcher: Unable to create process using '"'
我不明白为什么Windows命令行中的python3
指向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
此外(为了完整的信息),我安装了python 2:
$ python
File "C:\ProgramData\Anaconda3\lib\site.py", line 177
file=sys.stderr)
^
SyntaxError: invalid syntax
($ pip
输出相同的东西)。
在windows命令行中使用python3
和python
(分别)时,python3和python2.7都可以使用,这将是一个很好的奖励,但这并不是我的首要任务。
答案 0 :(得分:1)
你可能需要照顾好几件事:
通常,Windows PATH的搜索顺序是从系统PATH开始从左到右。第一个匹配元素获胜。在您的情况下,这是正确的,因为系统将首先搜索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
位于Scripts \文件夹中,因此在您的情况下,您必须将C:\ProgramData\Anaconda3\Scripts
添加到PATH
并再次创建相应的simlink。在这种情况下,您必须创建其中两个,因为pip.exe
将其名称附加到尝试调用的脚本(即,如果您的exe文件被调用foo.exe
,它将尝试调用foo-script.exe
这不存在)您可以使用这两个命令在PowerShell中创建simlink:
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行中的python3
和pip3
。请检查python2安装文件夹的类似问题。
希望它有所帮助。