我创建了一个virtualenv,虽然它有许多系统路径,但它没有其他系统路径。具体来说,似乎没有包括pyshared和dist-packages。因此,我的系统范围MySQLdb和psycopg2不可用。有什么想法吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
我唯一可能知道的方法是,如果你用参数--no-site-packages创建了你的virtualenv:
来自Here:
如果你使用virtualenv构建 --no-site-packages ENV它不会继承任何包 /usr/lib/python2.5/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能够从我的机器中的系统 dist-packages ( ubuntu )访问django。
希望这会有所帮助:)