使用mod_wsgi导入python模块

时间:2012-11-05 18:50:11

标签: python apache mod-wsgi

我们正试图让wsgi应用程序在mod_wsgi上运行。我们在使用wsgiref.simple_server作为调试环境之前运行它。现在,我们希望将其转移到使用Apache httpd与在同一端口下加载静态文件集成,并提供更适合生产的环境。

我们设置的httpd.conf文件如下所示:

<VirtualHost *:80>

    DocumentRoot /var/www/

    ErrorLog /var/www/log/error_log

    LogLevel debug

    WSGIScriptAlias /app /var/www/python/resource/rest.py

    <Directory /var/www/python/>
            Order allow,deny
            Allow from all
    </Directory>

    <Directory />
            Order allow,deny
            Allow from all

            RewriteEngine On
            # Some rewrites go here

    </Directory>

</VirtualHost>

通过此设置,我们可以访问主应用程序文件rest.py(在http://myhost/app下),但是对模块的任何导入(例如from module1 import function,其中module1与rest.py位于同一目录下)失败了ImportError

我怀疑这与必须设置某种环境变量有关,但是我在主应用程序方法上添加了/var/www/pythonsys.path并且它不起作用。任何帮助或指点都非常感激。

谢谢!

1 个答案:

答案 0 :(得分:6)

在/ var / www / python或/ var / www / python / resource下是rest.py吗?据我所知,将此目录添加到sys.path应该可以正常工作。优先使用字符串常量如下:

sys.path.append(os.path.dirname(__file__))

即使您决定将来部署到其他位置,这也应该有效。