我已经用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的别名。
答案 0 :(得分:1)
您没有使用MacPorts Python,因为显示的版本和日期证明了这一点。 (尝试键入/usr/bin/python2.6
然后键入/opt/local/bin/python2.6
。)如果您没有将MacPorts python_select
目录放在shell执行的bin
上,那么设置MacPorts PATH
就没有用了}:
$ export PATH=/opt/local/bin:$PATH
您可能需要重新创建virtualenv
,确保使用的是MacPorts Python,而不是Apple提供的Python。
编辑:根据附加信息,我猜想在最初采购virtualwrapper.sh
之前未正确设置$ PATH,如here所述。我建议你回去按照那里的说明进行操作,确保你已经将virtualenv
和virtualenvwrapper
安装到MacPorts site-packages目录,而不是系统Python。请注意,目前可通过MacPorts for Python 2.6获得的virtualenvwrapper
版本较旧,为1.20;它的shell脚本有a different name。