Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“Windows命令行”;蟒蛇3“;指向错误的python3.exe_Python_Windows_Environment Variables - Fatal编程技术网

“Windows命令行”;蟒蛇3“;指向错误的python3.exe

“Windows命令行”;蟒蛇3“;指向错误的python3.exe,python,windows,environment-variables,Python,Windows,Environment Variables,所以,我的电脑上安装了Anaconda、OSGeo和Python2.7 我也在用Spyder。在Spyder中: >>> import sys >>> sys.executable 'C:\\ProgramData\\Anaconda3\\pythonw.exe' 这就是我想要的 但是,在windows命令行和powershell中: $ python3 >>> import sys >>> sys.executable

所以,我的电脑上安装了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'
这不是我想要的。我想在命令行中使用
python3
时使用
'C:\\ProgramData\\Anaconda3\\pythonw.exe'
(或
python.exe
,不确定)

此外:

$ pip3
Fatal error in launcher: Unable to create process using '"'
我不明白为什么windows命令行中的
python3
指向OSGeo版本的python3。这是我的
路径

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都能工作将是一个不错的奖励,但这并不是我的优先事项。

可能有几件事需要注意:

通常,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
位于Scripts\文件夹中,因此在您的情况下,您必须将
C:\ProgramData\Anaconda3\Scripts
添加到
路径
中,并再次创建相应的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

这样,您就可以在cmd行中使用
python3
pip3
。请检查python2安装文件夹是否存在类似问题


希望有帮助。

大多数Windows Python发行版,包括官方PSF发行版,都不包含“python3.exe”文件。pip安装时使用“pip3”和“pip3.6”等,因为它遵循Unix约定。Windows Python通常不遵循该约定。至少有一个Windows Python的核心开发人员口头抗议,包括“pythonX.exe”和“pythonX.Y.exe”文件,而据我所知,其他所有人几乎都不在乎,所以这是不正确的。
New-Item -Path C:\ProgramData\Anaconda3\Scripts\pip3-script.py -ItemType SymbolicLink -Value C:\ProgramData\Anaconda3\Scripts\pip-script.py