почему virtualenv не включает все системные пути? - PullRequest
1 голос
/ 05 ноября 2010

Я создал virtualenv, и хотя у него много системных путей, у него нет других. В частности, pyshared и dist-пакеты не включены. В результате мои общесистемные MySQLdb и psycopg2 недоступны. Есть идеи почему?

Ответы [ 2 ]

2 голосов
/ 05 ноября 2010

Похоже, что это связано с В Ubuntu работает с python и virtualenv

1 голос
/ 05 ноября 2010

Единственный возможный способ, который мне известен, - это если вы создали свой virtualenv с аргументом --no-site-packages:

из Здесь :

Если вы собираете с помощью ENV virtualenv --no-site-packages, он не будет наследовать какие-либо пакеты из /usr/lib/python2.5/site-packages (или там, где находится ваш глобальный каталог site-packages).Это может быть использовано, если у вас нет контроля над пакетами сайта и вы не хотите зависеть от пакетов там, или вы просто хотите большей изоляции от глобальной системы.

, так вотпример, чтобы понять больше:

Сначала я создам virtualenv обычно (без --no-site-package), и вы увидите, что я всегда могу получить доступ к django, который установлен в моих системных пакетах сайта (или dist-packages ):

$ virtualenv A
New python executable in A/bin/python
Installing setuptools............done
$ source A/bin/activate
(A)$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django  
>>> django.__file__
'/usr/local/lib/python2.6/dist-packages/django/__init__.pyc'

Но теперь я создам виртуальную среду, используя --no-site-package:

$ virtualenv B --no-site-package
New python executable in B/bin/python
Installing setuptools............done.
$ source B/bin/activate
(B)$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) 
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named django

Теперь вы видите, чтоvirtaulenv смог получить доступ к django из системы dist-packages ( ubuntu ) на моей машине.

Надеюсь, это поможет:)

...