【问题标题】:Module not found error when running script as wsgi within Apache在 Apache 中将脚本作为 wsgi 运行时未找到模块错误
【发布时间】:2021-11-07 01:22:04
【问题描述】:

我在 Flask 服务器上使用 pywps 开发了一个服务器应用程序,现在我正在尝试将其迁移到 apache 服务器。

技术栈: 操作系统:Windows 服务器 蟒蛇 3.9.6 阿帕奇 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 是正确的。

我在这里错过了什么?

感谢您的帮助

【问题讨论】:

    标签: python apache flask mod-wsgi wps


    【解决方案1】:

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

    pip install pywps
    

    pip3 install pywps
    

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

    附:你可以在PyPI找到这个包

    【讨论】:

    • 感谢您的建议,但是模块已经安装好了。我会尽快添加点子列表的截图
    猜你喜欢
    • 1970-01-01
    • 2019-03-25
    • 2021-11-28
    • 2012-03-18
    • 2021-09-11
    • 2017-04-02
    • 2022-06-18
    • 1970-01-01
    • 2018-01-18
    相关资源
    最近更新 更多