【发布时间】:2011-06-07 15:41:44
【问题描述】:
我已经按照 macports 建议的this link 安装了 django 和 python。但是,我想使用 virtualenv 来安装更多的包。我的理解是,如果我不将--no-site-packages 传递给virtualenv,除了我安装到虚拟环境中的任何软件包之外,我还应该获得当前安装的软件包。这是正确的吗?
例如,我通过 macports 安装了 django,然后创建了一个虚拟环境,但我无法从该虚拟环境中导入 django:
[streeter@mordecai]:~$ mkvirtualenv django-test
New python executable in django-test/bin/python
Installing setuptools............done.
...
(django-test)[streeter@mordecai]:~$ pip install django-debug-toolbar
Downloading/unpacking django-debug-toolbar
Downloading django-debug-toolbar-0.8.4.tar.gz (80Kb): 80Kb downloaded
Running setup.py egg_info for package django-debug-toolbar
Installing collected packages: django-debug-toolbar
Running setup.py install for django-debug-toolbar
Successfully installed django-debug-toolbar
Cleaning up...
(django-test)[streeter@mordecai]:~$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
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
>>>
所以我可以将包安装到虚拟环境中,但它不会获取全局站点包。还是我做错了什么/遗漏了什么/误解了virtualenv 的工作原理?
我有 Mac OS 10.6 (Snow Leopard),更新了我的 macports 包,并且正在使用 macports 的 python26(通过 python_select python26)。
编辑:
我还检查了我的 macports PATH 设置是否正确。这是一些输出:
[streeter@mordecai]:~$ python --version
Python 2.6.6
[streeter@mordecai]:~$ echo $PATH
/opt/local/bin:/opt/local/sbin:/Users/streeter/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/streeter/.ec2/bin
[streeter@mordecai]:~$ source dev/python-environments/test/bin/activate
(test)[streeter@mordecai]:~$ python --version
Python 2.6.1
(test)[streeter@mordecai]:~$
virtualenv 和 virtualenvwrapper 都是使用 pip 安装的,而不是使用 macports,因为它似乎没有在 /usr/local/bin/virtualenvwrapper.sh 创建要源的文件,所以我不确定如何获取别名virtualenvwrapper。
【问题讨论】:
-
你试过了吗:
mkvirtualenv django-test --python=/path/to/macports/python?
标签: python django macos virtualenv macports