Является ли моя виртуальная среда (python) причиной поломки моего PYTHONPATH?

В моем /etc/profile я установил PYTHONPATH как-то.

Но когда я source myvirtual-env

А затем сделайте это в питоне:

>>> import sys
>>> print sys.path

Я нигде не вижу своих путей.


person TIMEX    schedule 13.01.2011    source источник


Ответы (2)


В этом суть virtualenv. Он не наследуется от остальной части вашей установки. Если вам нужен PYTHONPATH, вам нужно явно установить его.

Этот сообщение от djangousers, вероятно, будет вам полезен. используйте virtualenvwrapper, чтобы решить эту проблему.

Дополнительная информация в этой другой публикации SO на аналогичном проблема.

person Paul McMillan    schedule 13.01.2011
comment
Как установить PYTHONPATH в моей виртуальной среде? - person TIMEX; 14.01.2011
comment
с помощью virtualenvwrapper и команды add2virtualenv. doughellmann.com/docs/virtualenvwrapper/ - person Paul McMillan; 14.01.2011

Я не наблюдаю проблемы с Python 2.7, virtualenv 1.7.1.2 в Windows XP и подозреваю, что ответ Пола Макмиллана неверен.

# PYTHONPATH not set
# output from python -c "import sys; print sys.path" (edited for clarity)

'',
'C:\\Program Files\\python\\2.7\\lib\\site-packages\\pip-1.1-py2.7.egg',
'C:\\WINDOWS\\system32\\python27.zip',
'C:\\Program Files\\python\\2.7\\DLLs',
'C:\\Program Files\\python\\2.7\\lib',
'C:\\Program Files\\python\\2.7\\lib\\plat-win',
'C:\\Program Files\\python\\2.7\\lib\\lib-tk',
'C:\\Program Files\\python\\2.7',
'C:\\Program Files\\python\\2.7\\lib\\site-packages',
'C:\\Program Files\\python\\2.7\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info'

# PYTHONPATH not set, virtualenv activated
# output from python -c "import sys; print sys.path" (edited for clarity)

'',
'c:\\python\\virtualenv\\2.7\\lib\\site-packages\\distribute-0.6.24-py2.7.egg',
'c:\\python\\virtualenv\\2.7\\lib\\site-packages\\pip-1.1-py2.7.egg',
'C:\\WINDOWS\\system32\\python27.zip',
'c:\\python\\virtualenv\\2.7\\DLLs',
'c:\\python\\virtualenv\\2.7\\lib',
'c:\\python\\virtualenv\\2.7\\lib\\plat-win',
'c:\\python\\virtualenv\\2.7\\lib\\lib-tk',
'c:\\python\\virtualenv\\2.7\\Scripts',
'C:\\Program Files\\python\\2.7\\Lib',
'C:\\Program Files\\python\\2.7\\DLLs',
'C:\\Program Files\\python\\2.7\\Lib\\lib-tk',
'c:\\python\\virtualenv\\2.7',
'c:\\python\\virtualenv\\2.7\\lib\\site-packages'

# PYTHONPATH set to c:\pythonpath_sample_dir
# output from python -c "import sys; print sys.path" (edited for clarity)

''
'C:\\Program Files\\python\\2.7\\lib\\site-packages\\pip-1.1-py2.7.egg'
'c:\\pythonpath_sample_dir'   <--- value from PYTHONPATH
'C:\\WINDOWS\\system32\\python27.zip'
'C:\\Program Files\\python\\2.7\\DLLs'
'C:\\Program Files\\python\\2.7\\lib'
'C:\\Program Files\\python\\2.7\\lib\\plat-win'
'C:\\Program Files\\python\\2.7\\lib\\lib-tk'
'C:\\Program Files\\python\\2.7'
'C:\\Program Files\\python\\2.7\\lib\\site-packages'
'C:\\Program Files\\python\\2.7\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info'

# PYTHONPATH set to c:\pythonpath_sample_dir, virtualenv activated
# output from python -c "import sys; print sys.path" (edited for clarity)

''
'c:\\python\\virtualenv\\2.7\\lib\\site-packages\\distribute-0.6.24-py2.7.egg'
'c:\\python\\virtualenv\\2.7\\lib\\site-packages\\pip-1.1-py2.7.egg'
'c:\\pythonpath_sample_dir'   <--- value from PYTHONPATH
'C:\\WINDOWS\\system32\\python27.zip'
'c:\\python\\virtualenv\\2.7\\DLLs'
'c:\\python\\virtualenv\\2.7\\lib'
'c:\\python\\virtualenv\\2.7\\lib\\plat-win'
'c:\\python\\virtualenv\\2.7\\lib\\lib-tk'
'c:\\python\\virtualenv\\2.7\\Scripts'
'C:\\Program Files\\python\\2.7\\Lib'
'C:\\Program Files\\python\\2.7\\DLLs'
'C:\\Program Files\\python\\2.7\\Lib\\lib-tk'
'c:\\python\\virtualenv\\2.7'
'c:\\python\\virtualenv\\2.7\\lib\\site-packages'

Также python virtualenv: почему Я все еще импортирую старые модули в чистую/новую виртуальную среду, кажется, подтверждает, что PYTHONPATH используется для создания sys.path также когда активируется виртуальная среда.

person Piotr Dobrogost    schedule 08.06.2012