Macports和virtualenv site-packages Fallback

时间:2011-01-12 06:49:42

标签: python django macos virtualenv macports

我已经用macports建议的this link安装了django和python。但是,我想使用virtualenv来安装更多软件包。我的理解是,如果我传递--no-site-packagesvirtualenv,除了我安装到虚拟环境中的任何软件包之外,我应该获得当前安装的软件包。这是对的吗?

举个例子,我已经通过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]:~$ 

virtualenvvirtualenvwrapper都是使用pip安装的,而不是使用macports,因为它似乎没有创建要在/usr/local/bin/virtualenvwrapper.sh处获取的文件,所以我是不知道如何获得virtualenvwrapper的别名。

1 个答案:

答案 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所述。我建议你回去按照那里的说明进行操作,确保你已经将virtualenvvirtualenvwrapper安装到MacPorts site-packages目录,而不是系统Python。请注意,目前可通过MacPorts for Python 2.6获得的virtualenvwrapper版本较旧,为1.20;它的shell脚本有a different name