关于 mod_wsgi ModuleNotFoundError (dateutil) // python 3.11.4 64bit 和 apache 2.4.58 win64 VS17

问题描述 投票:0回答:1

我在 Windows 11 Pro 上使用 mod_wsgi 与 python 3.11.4 64 位和 apache 2.4.58 win64 VS17。

我为每个人安装 python,而不仅仅是我。

另外我不使用 python virtualenv。

当我在没有 apache(仅 mod_wsgi 标准)的情况下运行时,没有问题。

mod_wsgi-express start-server server.wsgi --port 5000

但是当我与 httpd 一起使用时,我收到如下所示的 ModuleNotFoundError 消息

[Mon Oct 23 16:23:56.361855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591] mod_wsgi (pid=29624): Failed to exec Python script file 'C:/Users/KORLOY/workspace/00_flask/aps_ed_project/server.wsgi'.
[Mon Oct 23 16:23:56.361855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591] mod_wsgi (pid=29624): Exception occurred processing WSGI script 'C:/Users/KORLOY/workspace/00_flask/aps_ed_project/server.wsgi'.
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591] Traceback (most recent call last):\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]   File "C:/Users/KORLOY/workspace/00_flask/aps_ed_project/server.wsgi", line 4, in <module>\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]     application = create_app()\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]                   ^^^^^^^^^^^^\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]   File "C:\\Users\\KORLOY\\workspace\\00_flask\\aps_ed_project\\dashboard\\__init__.py", line 5, in create_app\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]     from .views import main_views\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]   File "C:\\Users\\KORLOY\\workspace\\00_flask\\aps_ed_project\\dashboard\\views\\main_views.py", line 16, in <module>\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]     import pandas as pd\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]   File "C:\\python\\python_3.11.4_64bit\\Lib\\site-packages\\pandas\\__init__.py", line 29, in <module>\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591]     raise ImportError(\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591] ImportError: Unable to import required dependencies:\r
[Mon Oct 23 16:23:56.362855 2023] [wsgi:error] [pid 29624:tid 1164] [client 192.168.12.146:60591] dateutil: No module named 'dateutil'\r

好像我没有dateutil模块,但实际上我已经安装了python-dateutil并且我已经使用过很多次pandas了。(在我的电脑中只有一个python环境)

我不知道为什么当我将 httpd 与 mod_wsgi 一起使用时会出现 ModuleNotFoundError 。

请让我知道应该检查什么来解决这个问题。

非常感谢。

-- 这是 httpd 代码 --

Listen 80
Listen 5000

LoadFile "C:\python\python_3.11.4_64bit\python311.dll"
LoadModule wsgi_module "C:\python\python_3.11.4_64bit\Lib\site-packages\mod_wsgi\server\mod_wsgi.cp311-win_amd64.pyd"
WSGIPythonHome "C:\python\python_3.11.4_64bit"

ServerName localhost
# for flask server
<VirtualHost  *:5000>
    ServerName localhost
    WSGIScriptAlias / C:/Users/KORLOY/workspace/00_flask/aps_ed_project/server.wsgi
    #DocumentRoot C:/Users/KORLOY/workspace/00_flask/aps_ed_project
    <Directory C:/Users/KORLOY/workspace/00_flask/aps_ed_project>
        WSGIApplicationGroup %{GLOBAL}
        Require all granted
    </Directory>
</VirtualHost>

我尝试在其他环境中导入 dateutil,例如 jupyter notebook 或 pythonidle。然后我在 python 中导入 dateutil 时没有任何错误,甚至 pandas 也没有。

python apache flask mod-wsgi modulenotfounderror
1个回答
0
投票

我解决了这个错误。我遇到问题的原因是模块有两个站点包路径。我不确定,但也许我安装了 python 两次以上。我发现 pandas 模块安装在每个人的 python 路径中,但 dateutil 安装在用户漫游路径中。

© www.soinside.com 2019 - 2024. All rights reserved.