我在两个不同的解释器中有三个Python环境。首先是我的c:中的基本Python27。第二个是Anaconda解释器,具有其自己的环境和\ envs \目录中的另一个环境。我已将我的PYTHONPATH变量指向不位于\ envs \文件夹中的Anaconda解释器。
我也将PATH变量从该环境设置为脚本目录
但是,当我运行Django时,会收到有关版本差异的消息。我认为这是由于Django在我的C:\目录Python27中使用了解释器。当我在cmd中回显我的PATH环境变量时,这是我看到的:
C:\Program Files (x86)\ActiveState Komodo Edit 10\;C:\Program Files (x86)\ActiveState Komodo IDE 10\;
C:\Program Files\MATLAB\R2014a\bin\win64;
C:\ProgramData\Oracle\Java\javapath;
c:\Program Files (x86)\Intel\iCLS Client\;
c:\Program Files\Intel\iCLS Client\;
C:\Windows\system32;C:\Windows;
C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;
C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin\;
C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Bin;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;
C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;
**C:\Python27**;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\QuickTime\QTSystem\;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit\;C:\Program Files (x86)\Skype\Phone\;
C:\Program Files\MATLAB\R2016a\runtime\win64;
C:\Program Files\MATLAB\R2016a\bin;
C:\WINDOWS\system32;
C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;
C:\Users\jackf_000\sw\FFMPEG\bin;
C:**\Users\jackf_000\sw\Anaconda2\Scripts\**;
C:\ cygwin64 \ bin; C:\ Users \ jackf_000 \ AppData \ Local \ Microsoft \ WindowsApps;
当我在cmd中运行python并导入os以查看可执行文件时,我得到以下输出:
C:\Users\jackf_000>python
Python 2.7.9 (default, Dec 10 2014, 12:28:03) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.executable
'C:\\Python27\\python.exe'
如果我没有在控制面板窗口的PATH中的任何位置指定Python解释器,为什么在Anaconda之前的PATH变量中使用C:\中的Python解释器?以及如何指定我希望Django在Anaconda环境中查找所需的内容,或使用pip将Django安装到C:\ Python27?目前,pip将所有软件包安装到Anaconda环境。
解决方案
因为python 2.7路径是在系统环境变量PATH中设置的。您正在编辑用户变量(配置异常,因为它们包含仅在系统路径中找到的重复内容C:\windows\system32,例如)
如果键入,where python您可能会得到:
C:\Python27\python.exe
(编辑:由于您回答了我的评论,因此您实际上获得了该值)
如果键入,where pip您可能会得到:
C:\users\jackf_000\sw\anaconda2\scripts\pip.exe
这说明pip在anaconda2软件包中安装了软件包
为了使anaconda python进入您的路径,您需要不添加C:\users\jackf_000\sw\anaconda2包含pip的脚本子目录。
然后,如果您键入,where python您可能会得到:
C:\Python27\python.exe
C:\users\jackf_000\sw\anaconda2\python.exe
但这还不够,因为..
系统路径优先。PATH是一个特殊的env变量,您不会在用户个人资料中覆盖它,仅将dirs附加到该变量。拥有一个用户PATH变量和一个系统PATH变量是完全正常的。
另一方面,假设系统变量PYTHONPATH不令人满意,您可以选择通过在用户变量中设置一个完全不同的变量来替换它。这将替换路径,而不是附加到路径,除非您在;%PYTHONPATH%某处添加(PYTHONPATH是路径变量,但Windows并不知道,这没什么特别的)。而且PYTHONPATH不会影响将要加载的可执行文件,因此暂时将其忘记。
2个解决方案:
修改系统路径(需要管理员)以在2.7之前添加anaconda(不推荐)
运行需要anaconda并带有.bat文件的应用程序,该文件应从以下开始:
set PATH=C:\users\jackf_000\sw\anaconda2;%PATH%
rem now run the command which needs anaconda python first