【问题标题】:Macports and virtualenv site-packages FallbackMacports 和 virtualenv 站点包后备
【发布时间】: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]:~$ 

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

【问题讨论】:

  • 你试过了吗:mkvirtualenv django-test --python=/path/to/macports/python

标签: python django macos virtualenv macports


【解决方案1】:

显示的版本和日期证明您没有使用 MacPorts Python。 (尝试输入/usr/bin/python2.6,然后输入/opt/local/bin/python2.6。)如果您不将MacPorts bin 目录放在您的shell 执行PATH 上,那么仅设置MacPorts python_select 是没有用的:

$ export PATH=/opt/local/bin:$PATH

您可能需要重新创建 virtualenv,确保您使用的是 MacPorts Python 而不是 Apple 提供的 Python。

编辑:根据附加信息,我猜想您的 $PATH 在最初采购virtualwrapper.sh 之前没有正确设置,如here 所述。我建议您返回并按照那里的说明进行操作,确保您确实已将virtualenvvirtualenvwrapper 安装到MacPorts 站点包目录,而不是系统Python 目录。请注意,当前可通过 MacPorts for Python 2.6 获得的 virtualenvwrapper 版本是较旧的版本 1.20;它的shell脚本有a different name

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2016-02-20
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2010-09-19
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多