-1

我有一个在 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 是正确的。

我在这里想念什么?

谢谢您的帮助

4

1 回答 1

0

ModuleNotFoundError意味着缺少一个模块,您必须安装它。在你的情况下,它的 PyWPS。所以打开一个终端并输入

pip install pywps

或者

pip3 install pywps

然后,如果您重新运行代码,它应该可以工作。

PS 你可以在PyPI上找到包

于 2021-09-10T15:12:53.400 回答