virtualenv не копирует стандартные модули, такие как shutil и urllib2 - PullRequest
3 голосов
/ 29 марта 2010

Когда я создаю новый virtualenv, virtualenv .virtualenvs/my_env, есть только подмножество стандартных модулей python, скопированных / связанных с новым virtualenv.

Например, когда я делаю ls -l в .virtualenvs/my_env/lib/python2.6, я вижу:

...
... os.py -> /usr/lib/python2.6/os.py
... os.pyc -> /usr/lib/python2.6/os.pyc

, но такие модули, как shutil и urllib2, не копируются, даже если они находятся в /usr/lib/python2.6/shutil.py.Я использую Ubuntu 9.10.

Это ожидаемое поведение?Как я могу установить такие модули, как shutil, в virtualenv (я не смог найти эти модули в pypi)?

1 Ответ

6 голосов
/ 29 марта 2010

virtualenv munges sys.path для вставки вашей виртуальной среды перед системных библиотек, но системные библиотеки все еще находятся на пути, поэтому они все еще должны быть доступны.

Так, например, выполните:

>>> import os
>>> os
<module 'posixpath' from '/environments/userpython/lib/python2.6/posixpath.pyc'>
>>> import shutil
>>> shutil
<module 'shutil' from '/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/shutil.pyc'>

Мой модуль os находится в моей виртуальной среде, но модуль shutil поставляется из моей системы Python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...