在Ubuntu 16.04使用的virtualenv 15.0.1和Python 3.5.2(均與apt
安裝),當我創建和爲什麼pip凍結列表「pkg-resources == 0.0.0」?
virtualenv .virtualenvs/wtf -p $(which python3) --no-site-packages
source .virtualenvs/wtf/bin/activate
激活新的Python的虛擬環境我得到以下輸出:
Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/das-g/.virtualenvs/wtf/bin/python3
Also creating executable in /home/das-g/.virtualenvs/wtf/bin/python
Installing setuptools, pkg_resources, pip, wheel...done.
事實上pip freeze --all
列出了這些包4:
pip==8.1.2
pkg-resources==0.0.0
setuptools==25.2.0
wheel==0.29.0
雖然,我期望pip freeze
(不含--all
)省略這些隱式安裝的軟件包。它確實忽略其中的一部分,但不是pkg-resources
:
pkg-resources==0.0.0
(同BTW爲pip freeze --local
。)
雖然這是一個在pip freeze
輸出具有pkg-resources
幫助文本
$> pip freeze --help | grep '\--all'
--all Do not skip these packages in the output: pip, setuptools, distribute, wheel
一致似乎不太有用,甚至可能是有害的。 (我懷疑這就是爲什麼從pip-tools運行pip-sync
從虛擬環境中卸載pkg-resources,從而巧妙地破壞了環境。)爲什麼pip freeze
列出了pkg-resources
而不是忽略它?據我記憶,它沒有列出在Ubuntu 14.04(與Python 3.4)。
我不知道爲什麼會發生這種情況。這發生在我身上的是一個對我的項目來說非常重要的不同包。我找到的解決方案是使用PyPi上的最新版本編輯requirements.txt。我猜測,一種可能性是最初安裝的版本在PyPi上不再可用。 – owobeid
令人驚訝的是,這還沒有答案... – Adam
這導致了生產推動失敗,所以我很好奇答案/解決方案。 –