被WSGI模块导入错误困扰

时间:2010-05-27 01:42:07

标签: python mod-wsgi wsgi

我正在编写一个简单的Python wsgi应用程序,并且因模块导入错误而感到困惑。我在当前目录中有一个最初无法导入的.py文件。添加

sys.path.insert(0,'/ Users / guhar / Sites / acom')

模块的导入工作正常。但我现在尝试导入一个我通过easy_install安装的模块,但无法导入。我试过设置

sys.path.insert(0,'/ Library /Python / 2.5 / site-package /')

其中包含egg文件,但无济于事。我原以为“/Library/Python/2.5/site-packages/”下的所有软件包都可供WSGI应用程序使用。

有人有指针吗?

2 个答案:

答案 0 :(得分:5)

读:

http://code.google.com/p/modwsgi/wiki/VirtualEnvironments

你不能简单地将包含.pth文件的Python模块目录添加到sys.path中。您必须使用site.addsitedir()或使用mod_wsgi的其他选项让它使用虚拟环境。

我想也许,考虑到你看起来好像在使用MacOS X,你已经安装了第二次Python安装,而mod_wsgi使用的不是你安装软件包的版本。那个或你的第二个Python安装已经破坏,通常可以在MacOS X上使用。

BTW,我假设当你说WSGI时你实际上是指mod_wsgi给出你使用的标签。如果您这样做,请不要使用WSGI来引用mod_wsgi。 WSGI只是一个规范,mod_wsgi是一个特定的托管实现。你不应该互换使用这些术语。

答案 1 :(得分:1)

如果您在Apache mod_wsgi下运行,请在虚拟主机配置中指定所有必需的python路径,如下所示:

WSGIDaemonProcess ... python-path=/srv/lala/www:/srv/lala/lib/python2.6/site-packages:/Library/Python/2.5/site-packages