为什么我的pip冻结时不会出现setuptools 1.3.1?

时间:2013-11-07 13:37:42

标签: virtualenv pip setuptools distribute

我在Ubuntu 12.04上运行virtualenvwrapper和朋友(virtualenvwrapper 1.7.1.2,virtualenv 1.7.1.2,pip 1.0,Distribute 0.6.24,Python 2.7)。为了pip install matplotlib我需要更新版本的Distribute / setuptools,所以我执行以下操作:

$ mkvirtualenv new_venv
$ pip install matplotlib # fails
$ easy_install -U distribute
# installs Distribute 0.7.3 in the venv,
# which then installs setuptools 1.3.1
$ pip install matplotlib # works

但是,当我运行pip freeze时,我得到:

argparse==1.2.1
distribute==0.7.3 # here's Distribute
matplotlib==1.3.1
nose==1.3.0
numpy==1.8.0
pyparsing==2.0.1
python-dateutil==2.2
six==1.4.1
tornado==3.1.1
wsgiref==0.1.2

setuptools在哪里?我只是试过了pip install setuptools而且它也没有出现在那里。

2 个答案:

答案 0 :(得分:7)

On Ubuntu setuptools由系统软件包管理器安装。因此,pip freeze时未列出。在创建virtualenv时,您将收到这些消息

mkvirtualenv test
New python executable in test/bin/python
Installing setuptools, pip...done.

如果您在此之后立即执行pip freeze,您将获得类似的内容

argparse==1.2.1
wsgiref==0.1.2

此处setuptoolspip不会列出。

如果你想要所有的东西,你可以做pip list给出类似的东西。

argparse (1.2.1)
pip (1.5.6)
setuptools (3.6)
wsgiref (0.1.2)

答案 1 :(得分:4)

除非您告知,否则

pip 不会列出 pip 本身依赖的软件包。您可以通过以下方式包括此类软件包: pip freeze --all

冻结以需求格式列出软件包-供需求文件等使用-而 list 只是列表。

有关更多详细信息,请参见Pip freeze vs. pip list