所以,我的计算机上安装了 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 '"'
我不明白为什么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
<小时/>
此外(为了信息的完整性),我安装了 python 2 :
$ python
File "C:\ProgramData\Anaconda3\lib\site.py", line 177
file=sys.stderr)
^
SyntaxError: invalid syntax
( $ pip
输出相同的内容)。
使用 python3
时 python3 和 python2.7 都可以工作和python
(分别)在 Windows 命令行中将是一个不错的奖励,但这并不是我的首要任务。
最佳答案
您可能需要注意以下几件事:
一般来说,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 安装文件夹是否存在类似问题。
希望有帮助。
关于python - Windows命令行, "python3"指向错误的python3.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45585779/