为什么点击冻结报告一些新的virtualenv使用–no-site-packages创build的包?
当我创build一个新的virtualenv时, pip freeze
显示我已经安装了一些软件包,即使我没有在环境中安装任何东西。 我期待的pip freeze
返回空输出,直到我的第一个pip install
到环境中。 wsgiref是标准库的一部分,是不是它为什么显示出来呢?
一天@车库:〜$ mkdirtesting 一天@车库:〜$ cdtesting day @ garage:〜/ testing $ virtualenv --no-site-packages。 ./bin/python中的新的python可执行文件 安装分发................................................ .......... .................................................. ............................. .........................................完成。 day @ garage:〜/ testing $。 斌/启动 (testing)day @ garage:〜/ testing $ pip freeze 分发== 0.6.10 ==的wsgiref 0.1.2
一些额外的信息:
(testing)day @ garage:〜/ testing $ pip --version pip 0.7.2 from /home/day/testing/lib/python2.7/site-packages/pip-0.7.2-py2.7.eg g(python 2.7) (testing)day @ garage:〜/ testing $ deactivate day @ garage:〜/ testing $ virtualenv --version 1.4.9 day @ garage:〜/ testing $ which virtualenv 在/ usr / bin中/的virtualenv day @ garage:〜/ testing $ dpkg -S / usr / bin / virtualenv python-virtualenv:/ usr / bin / virtualenv day @ garage:〜/ testing $ cat / etc / lsb-release DISTRIB_ID = Ubuntu的 DISTRIB_RELEASE = 11.04 DISTRIB_CODENAME =整洁的 DISTRIB_DESCRIPTION =“Ubuntu 11.04”
每次你用–no-site-packages创build一个virtualenv,它会安装setuptools
或distribute
。 而wsgiref
出现的原因是因为python 2.5+标准库向wsgiref
lib提供了蛋信息(并且pip
不知道它是stdlib还是第三方包)。
这似乎是在Python3.3 +上解决: http ://bugs.python.org/issue12218
要回答一个稍微不同的问题:通过执行pip freeze -l
而不是pip freeze
可以排除wsgiref
(以及任何其他类似问题的.egg
文件,如果您不幸有任何原因)。
pip help freeze
描述这个选项:
-l,–local如果在virtualenv中,不要报告全局安装的软件包