2016-08-17 101 views
27

在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)。

+0

我不知道爲什麼會發生這種情況。這發生在我身上的是一個對我的項目來說非常重要的不同包。我找到的解決方案是使用PyPi上的最新版本編輯requirements.txt。我猜測,一種可能性是最初安裝的版本在PyPi上不再可用。 – owobeid

+0

令人驚訝的是,這還沒有答案... – Adam

+0

這導致了生產推動失敗,所以我很好奇答案/解決方案。 –

回答

1

我有同樣的問題。

我如何固定它:

sudo apt-get remove virtualenv 
sudo -H pip2 install virtualenv 

這只是工作的命令。

0

我在我的虛擬環境中遇到了同樣的問題。我刪除它與pip uninstall pkg-resources==0.0.0

+0

警告:這可能會巧妙地破壞你的virtualenv。 –