簡體   English   中英

Python解釋器PATH奇數。 不能使用Django

[英]Python interpreter PATH oddity. Can't use django

我在兩個不同的解釋器中有三個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的scripts C:\\users\\jackf_000\\sw\\anaconda2

然后,如果您輸入where python ,則可能會得到:

C:\Python27\python.exe
C:\users\jackf_000\sw\anaconda2\python.exe

但這還不夠,因為..

系統路徑優先。 PATH是一個特殊的env變量,您不會在用戶個人資料中覆蓋它,僅將dirs附加到該變量。 擁有一個用戶PATH變量和一個系統PATH變量是完全正常的。

另一方面,假設系統變量PYTHONPATHPYTHONPATH ,您可以選擇通過在用戶變量中設置一個完全不同的變量來替換它。 除非您在某處添加;%PYTHONPATH%PYTHONPATH是路徑變量,但Windows不知道,這沒什么特別的),否則它將替換路徑,而不是附加到路徑。 而且PYTHONPATH不會影響要加載的可執行文件,因此暫時將其忘記。

2個解決方案:

  1. 修改系統路徑(需要管理員)以在2.7之前添加anaconda(不推薦)
  2. 運行需要anaconda並帶有.bat文件的應用程序,該文件應從以下開始:

    set PATH=C:\\users\\jackf_000\\sw\\anaconda2;%PATH% rem now run the command which needs anaconda python first

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM