python - 使用 mod_wsgi 导入 python 模块

标签 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/python 添加到 sys.path 上应用方法,它不起作用。非常感谢任何帮助或指示。

谢谢!

最佳答案

rest.py是在/var/www/python下还是/var/www/python/resource下?据我所知,将此目录添加到 sys.path 应该有效。最好使用以下字符串常量:

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

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

关于python - 使用 mod_wsgi 导入 python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238404/

相关文章:

python - Gensim word2vec 在预定义字典和单词索引数据上

php - PHP : Unexplainable parse errors

django - 在 WSGI/Passenger 下使用 Werkzeug 调试 Django - 问题

python - Apache 导入错误 : No module named _socket in wsgi deployment on Django

python - 使用 Python 保存下载的 ZIP 文件

python aboutdialog 程序名称/版本和 Logo 之间的空间

python - Golang Scrypt 解密

php - 如何编写 mod_security 友好的 PHP 代码?

Apache 加载 mod_ssl 但在我的虚拟主机中忽略了 <IfModule mod_ssl.c>

python - Django 和 mod_wsgi python 版本?