新しいvirtualenvを作成すると、pip freeze
は、環境に何もインストールしていないのに、いくつかのパッケージがインストールされていることを示しています。私は、最初のpip freeze
が環境に入るまで、pip install
が空の出力を返すことを期待していました。 wsgirefは標準ライブラリの一部です そうではないのに、なぜそれがまったく表示されないのですか?
day @ garage:〜$ mkdirテスト day @ garage:〜$ cdテスト day @ garage:〜/ tests $ virtualenv--no-site-packages。 新しいpython実行可能ファイル./bin/python 配布のインストール...................... .................................... .......。 ................................................。 .................... .......................。 ................完了。[。 $ pipfreeze distribute == 0.6.10 wsgiref == 0.1.2
いくつかの追加情報:
(testing)day @ garage:〜/ tests $ 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:〜/ tests $ deactivate day @ garage:〜/ tests $ virtualenv- -バージョン 1.4.9 day @ garage:〜/ tests $ which virtualenv /usr/bin/virtualenv day @ garage:〜/ tests $ 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 = natty DISTRIB_DESCRIPTION = "Ubuntu 11.04"
--no-site-packagesを使用してvirtualenvを作成するたびに、setuptools
またはdistribute
がインストールされます。そして、wsgiref
が表示される理由は、python 2.5+標準ライブラリがEgg情報をwsgiref
libに提供するためです(そしてpip
はそれがstdlibまたはサードパーティパッケージ)。
Python3.3 +で解決されているようです: http://bugs.python.org/issue12218
少し異なる質問に答えるには:wsgiref
(および他の同様に問題のある.Egg
ファイル(何らかの理由で何かを持っているのに不幸な場合)pip freeze -l
の代わりに pip freeze
。
pip help freeze
はこのオプションについて説明しています:
-l、-local virtualenvの場合、グローバルにインストールされたパッケージを報告しません