簡體   English   中英

我的PYTHONPATH env似乎無法正常工作

[英]My PYTHONPATH env doesn't seem to work

我已經在計算機(mac)上安裝了pip,並嘗試了以下操作:

$export PYTHONPATH=/usr/local/lib/python2.7/site-packages/pip
$python pip freeze list
/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file 'pip': [Errno 2] No such file or directory

它不起作用,但是如果我在python命令中指定此完整路徑,它將起作用:

$python /usr/local/lib/python2.7/site-packages/pip freeze list
ant==0.1.0
appnope==0.1.0
astroid==1.4.8
backports-abc==0.5
........

這是為什么?

正如評論中指出的那樣,您不想弄混PYTHONPATH。 如果要在同一台計算機上安裝不同版本的python,或者要在安裝了不同軟件包或模塊的python安裝中安裝python,則需要使用virtualenv

創建一個新的virtualenv。

virtualenv /usr/local/custom-python/

然后只要您想使用它或將軟件包安裝到其中,就可以

source /usr/local/custom-python/bin/activate

直接運行pip freeze就足夠了。 您完全不必通過python pip來運行它或調整$PYTHONPATH

第一個代碼段中的錯誤與您調用python的方式有關。 您的命令被解釋為python <script-filename> [script-arguments ...] 您要傳遞的文件名是pip ,因此python在當前目錄中查找名為“ pip”的文件。 該文件不存在,因此python崩潰並顯示“找不到文件”錯誤。

python <full-path-to-script>之所以有效,是因為...好吧,為什么不呢? Python找到腳本並執行它。

嘗試使用: $export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages首先,您的代碼可能包含已棄用的原始PYTHONPATH。 其次,不要將pip包含在python路徑中,因為pip是應包含的軟件包。

python /your/path/to/pip這個pip是一個文件夾,其中有一個__init__.py 因此python可以讀取它。 但是,如果直接將PYTHONPATH定義為pip文件夾,則python將找不到此__init__.py來表示pip(請參閱有關python導入包的文檔)

此外,我認為您可以在路徑中包含二進制pip(可能位於/ usr / bin),以便可以使用$ pip command直接調用它

暫無
暫無

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

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