Я создал virtualenv, и хотя у него много системных путей, других у него нет. В частности, кажется, что пакеты pyshared и dist не включены. В результате мои общесистемные MySQLdb и psycopg2 недоступны. Есть идеи, почему?
почему virtualenv не включает все системные пути?
Ответы (2)
Кажется, это связано с тем, что Ubuntu возится с python и виртуальная среда
Единственный возможный способ, о котором я знаю, это если вы создали свой virtualenv с аргументом --no-site-packages:
из здесь:
Если вы строите ENV с помощью virtualenv --no-site-packages, он не будет наследовать какие-либо пакеты из /usr/lib/python2.5/site-packages (или из любого другого места, где находится ваш глобальный каталог site-packages). Это можно использовать, если у вас нет контроля над пакетами сайтов и вы не хотите зависеть от пакетов там, или вы просто хотите большей изоляции от глобальной системы.
Итак, вот пример, чтобы понять больше:
Сначала я создам виртуальную среду в обычном режиме (без --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) на моей машине.
Надеюсь, это поможет :)