我有一个在 Flask 服务器上使用 pywps 开发的服务器应用程序,现在我试图将它迁移到 apache 服务器。
技术栈:操作系统:Windows Server Python 3.9.6 Apache 2.4.48 (Win64) mod-wsgi 4.8.0
我可以打开配置的 URL,但收到状态代码 500。错误日志显示以下内容:
mod_wsgi (pid=7212, process='', application='127.0.0.1:8008|/wps'): Loading Python script file 'C:/Apache24/wps_env/pywps-flask-master/pywps.wsgi'.
mod_wsgi (pid=7212): Failed to exec Python script file 'C:/Apache24/wps_env/pywps-flask-master/pywps.wsgi'.
mod_wsgi (pid=7212): Exception occurred processing WSGI script 'C:/Apache24/wps_env/pywps-flask-master/pywps.wsgi'.
Traceback (most recent call last):\r
File "C:/Apache24/wps_env/pywps-flask-master/pywps.wsgi", line 9, in <module>\r
import pywps\r
ModuleNotFoundError: No module named 'pywps'\r
有问题的 wsgi 文件是:
from pathlib import Path
import pywps
from pywps import Service
from processes.sayhello import SayHello
from processes.csv_input import CSVInputs
processes = [
SayHello(),
CSVInputs()
]
application = Service(processes, [Path(r'C:\Users\Jdoe\wps_env\pywps-flask-master\pywps.cfg')])
现在出现了奇怪的事情,我能够从 powershell 执行这个 exakt 相同的脚本,完全没有错误。我会排除路径或环境相关问题,因为我已经安装了我在 virtaul enviroemnt 中使用的所有 pip 包,我还必须在全局命名空间中开发,所以两个解释器都知道相同的包。我知道这不是最佳实践,但无论如何我目前都在沙箱中工作,这更像是一个 POC,而不是其他任何东西。
由于 wsgi 应用程序尝试运行,我还假设我的 apache conf 是正确的。
我在这里想念什么?
谢谢您的帮助