为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

翻翻过去那场雪 2024-01-16 15:36:11
我正在尝试在 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 但它也没有帮助。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

我在 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 。


查看完整回答
反对 回复 2024-01-16
  • 1 回答
  • 0 关注
  • 37 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信