2015-11-18 4 views
9

Моя основная проблема заключается в том, что я не могу получить --no-site-packages для «работы».Virtualenv, no-site-packages, sys.path

Я прочитал кучу сообщений на SO, включая this post. Я огромный Ubuntu noob, и не намного лучше, когда дело доходит до того, как python взаимодействует с os.

Другие сообщения предположили, что printenv будет отображать PYTHONPATH Когда я в моем virtualenv, printenv не появляется в список «PYTHONPATH», но это вполне возможно, что я должен искать это особенно dir, что я не а не заглавные буквы.

Однако я заметил, что при запуске оболочки python в virtualenv перечислены все мои глобальные пакеты.

Я не уверен, что это проблема с virtualenv, .bashrc, Ubuntu или my brain. Любая помощь будет принята с благодарностью.

Если есть какая-то, знающая душа, которая готова помочь мне в каком-то обратном процессе, я была бы очень благодарна. Я не перечислял ни одного моего вывода, потому что, честно говоря, помимо вышеизложенного, я не совсем уверен, с чего начать.

Редактировать в ответ на комментарии; UTC: 7:41 19 ноября 2015

Запуск среды:

[email protected]:~/Dropbox/$$ P/...$ virtualenv --no-site-packages venv 
New python executable in venv/bin/python 
Installing setuptools, pip, wheel...done. 

Ввод среды:

[email protected]:~/Dropbox/$$ P/...$ source venv/bin/activate 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

Системные пакеты:

(venv)[email protected]:~/Dropbox/$$ P/...$ pip freeze 
adium-theme-ubuntu==0.3.4 
apt-xapian-index==0.46 
beautifulsoup4==4.4.1 
bleach==1.4.2 
blinker==1.3 
cffi==1.1.2 
characteristic==14.3.0 
chardet==2.3.0 
colorama==0.3.3 
command-not-found==0.3 
.... 
virtualenv==13.1.2 
virtualenv-clone==0.2.6 
virtualenvwrapper==4.7.1 
wheel==0.26.0 
whitenoise==1.0.6 
xdiagnose==3.8.1 
zope.interface==4.1.2 
(venv)[email protected]:~/Dropbox/$$ P/...$ 

sys.path:

(venv)[email protected]:~/Dropbox/$$ P/...$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload',  
'/home/notanambiturner/.local/lib/python2.7/site-packages', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PILcompat', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/python2.7/dist-packages/ubuntu-sso-client'] 
>>> 

Вы можете четко видеть, что сайт-пакеты включены в sys.path, что очень раздражает.

Python3 кажется немного лучше, не то, что я знаю, как использовать pip freeze с ним (или даже если я могу):

(venv)[email protected]:~/Dropbox/$$ P/...$ python3 
Python 3.4.3+ (default, Oct 14 2015, 16:03:50) 
[GCC 5.2.1 20151010] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/usr/lib/python3.4', 
'/usr/lib/python3.4/plat-x86_64-linux-gnu', 
'/usr/lib/python3.4/lib-dynload', 
'/usr/local/lib/python3.4/dist-packages', 
'/usr/lib/python3/dist-packages'] 
>>> 

Следующая редактировать. Мой mind is bottled далее. UTC 08:00 19 ноября 2015 г.

Поскольку я теоретик заговора, я попытался создать вену вне Dropbox.

[email protected]:~$ source venv/bin/activate 
(venv)[email protected]:~$ pip freeze 
wheel==0.24.0 
(venv)[email protected]:~$ python 
Python 2.7.10 (default, Oct 14 2015, 16:09:02) 
[GCC 5.2.1 20151010] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import sys 
>>> sys.path 
['', 
'/home/notanambiturner/venv/lib/python2.7', 
'/home/notanambiturner/venv/lib/python2.7/plat-x86_64-linux-gnu', 
'/home/notanambiturner/venv/lib/python2.7/lib-tk', 
'/home/notanambiturner/venv/lib/python2.7/lib-old', 
'/home/notanambiturner/venv/lib/python2.7/lib-dynload', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-x86_64-linux-gnu', 
'/usr/lib/python2.7/lib-tk', 
'/home/notanambiturner/venv/local/lib/python2.7/site-packages', 
'/home/notanambiturner/venv/lib/python2.7/site-packages'] 
    >>> 

Что ... ... heck ...? Я имею в виду, я полагаю, это какой-то прогресс? Может быть, что-то связано с моими именами файлов (\ $ \ $ \ P /), которые вызывают проблемы? Из того, что я прочитал, до тех пор, пока я sudo rm -rf venv, не должно иметь никакого значения, что я создал и удалил virtualenv s в том же каталоге ранее. Это правильно?

Argh.

+3

Можете ли вы войти в среду, запустить python и запустить 'import sys; print (sys.path) 'внутри python; затем добавьте все входы и выходы, которые вы сделали/получили на свой пост, отредактировав его? –

+1

В основном это связано с тем, как вы активируете свой виртуальный. Пожалуйста, напишите полные команды и их результаты, как вы их запускаете. –

+0

Спасибо, ребята! Я не могу сказать вам, насколько хорошо он чувствует, что кто-то помогает мне с этой сверхнаходимой проблемой. Я отредактировал сообщение за ваши комментарии. Спасибо за вашу помощь! – NotAnAmbiTurner

ответ

0

Ошибка при использовании $ в названии пути (по крайней мере, на Ubuntu).

Смежные вопросы