【发布时间】:2010-07-28 01:43:57
【问题描述】:
我正在使用安装了 python、django 和 pinax 的 Windows 机器。
我可以从任何正常位置导入模块(即使它不在实际安装的目录中)。但是,当我在为 Pinax 构建的虚拟环境中时,我无法导入这些相同的模块。
这可能是什么原因?有哪些可能的解决方案?
【问题讨论】:
我正在使用安装了 python、django 和 pinax 的 Windows 机器。
我可以从任何正常位置导入模块(即使它不在实际安装的目录中)。但是,当我在为 Pinax 构建的虚拟环境中时,我无法导入这些相同的模块。
这可能是什么原因?有哪些可能的解决方案?
【问题讨论】:
要诊断导入失败,请尝试使用 -v 切换到 python:
python -v my_program.py
它将显示它尝试导入您的模块。
【讨论】:
正如the summary 所说,
[[virtualenv]] 创建环境 有自己的安装 目录,不共享 与其他 virtualenv 的库 环境(并且可选地不 使用全局安装的库 要么)。
然而,您似乎对您构建的 virtualenv“不共享库”感到惊讶......当不共享是 virtualenv 的全部意义时,为什么您会感到惊讶?!- )
一旦您创建了python virtualenv.py ENV,为了继续引用我已经指出您的摘要,“如果您使用 ENV/bin/easy_install,软件包将被安装到环境中”。
所以,这样做是为了安装您需要在虚拟环境中导入的所有包。
(假设您已使用 --no-site-packages 选项来创建虚拟环境,您还需要对“站点范围”安装的所有软件包都这样做,因为该选项的目的是为了更好地排除它们控制和隔离)。
【讨论】: