我们正试图让 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/