OSError:无法在 Apache mod_wsgi CentOS 8 上加载本机模块

我正在尝试在 apache 服务器上运行 django 项目。django 服务器本身运行良好,但通过 mod_wsgi 运行时失败。它返回错误如下:

OSError: Cannot load native module 'Crypto.Cipher._raw_ecb': Trying '_raw_ecb.cpython-39-x86_64-linux-gnu.so': /home/user/django/centos_env/lib/python3.9/site-packages/Cryptodome/Util/../Cipher/_raw_ecb.cpython-39-x86_64-linux-gnu.so: failed to map segment from shared object, 
Trying '_raw_ecb.abi3.so': /home/user/django/centos_env/lib/python3.9/site-packages/Cryptodome/Util/../Cipher/_raw_ecb.abi3.so: cannot open shared object file: No such file or directory, 
Trying '_raw_ecb.so': /home/user/django/centos_env/lib/python3.9/site-packages/Cryptodome/Util/../Cipher/_raw_ecb.so: cannot open shared object file: No such file or directory

我检查了该文件是否在那里。我检查了Python home变量并尝试从python解释器导入Crypto.Cipher(有效)。一切看起来都很好。

我尝试从源代码编译 pycryptodome 但它也没有帮助。


翻翻过去那场雪
浏览 112回答 1
1回答

杨__羊羊

我在 Flask 上也遇到了同样的问题(我在 Gentoo-Linux 上)。原因是虚拟环境和 mod_wsgi 编译时使用的 Python 版本不同。当你重新启动apache并查看error_log时,你可以看到mod_wsgi的版本,比如AH00163: Apache/2.4.46 (Unix) OpenSSL/1.1.1i PHP/7.2.34 mod_wsgi/4.7.1 Python/3.7 configured -- resuming normal operations显示编译 Python mod_wsgi 的版本。我的虚拟环境使用 Python 3.7 而 mod_wsgi 使用 3.8 。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python