私はvirtualenv --no-site-packages
完全に分離した孤立したPython環境を作成するという印象を受けましたが、そうではありません。
たとえば、python-djangoをグローバルにインストールしていますが、Djangoの異なるバージョンでvirtualenvを作成したいと考えています。
$ virtualenv --no-site-packages foo
New python executable in foo/bin/python
Installing setuptools............done.
$ pip -E foo install Django
Requirement already satisfied: Django in /usr/share/pyshared
Installing collected packages: Django
Successfully installed Django
私が知ることができることから、pip -E foo install
上記はDjangoの新しいバージョンを再インストールすることになっています。また、pipに環境をフリーズするように指示すると、大量のパッケージが取得されます。--no-site-packages
これで新鮮な環境が空白になると思いますか?
$ pip -E foo freeze
4Suite-XML==1.0.2
BeautifulSoup==3.1.0.1
Brlapi==0.5.3
BzrTools==1.17.0
Django==1.1
... and so on ...
私はどのように機能する--no-site-packages
ことになっているのか誤解していますか?
--no-site-packages
は廃止されたと言います。下位互換性のためにのみ保持されます。グローバルサイトパッケージにアクセスできないことがデフォルトの動作になりました。グローバルサイトパッケージにアクセスする場合は、を有効にすることができ--system-site-packages
ます。