Django Apache mod-wsgi 导入 .so 文件的 Python 模块时卡住

10 投票
1 回答
2466 浏览
提问于 2025-04-16 07:24

我正在尝试在Apache的mod-wsgi上部署一个Django应用程序,准备让它在生产环境中使用。我有一个第三方的Python应用程序,叫做FreeCAD,它把Python模块打包成一个名为FreeCAD.so的库文件。但是,当我在网页请求中尝试导入这个模块时,它总是卡在'import FreeCAD'这一步。有一些Apache的日志错误提示我,这可能和zlib压缩有关?不过,使用Django的runserver时,一切都运行得很好。

经过进一步调查,我发现这并不是压缩问题,也不是权限问题。我以www-data用户身份执行了

$ sudo -u www-data python
Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.append('/usr/lib/freecad/lib')
>>> import FreeCAD
FreeCAD 0.10, Libs: 0.10R3225
>>> 

但在网页请求中,导入'FreeCAD'时仍然卡住。

1 个回答

27

设置:

WSGIApplicationGroup %{GLOBAL}

请查看mod_wsgi维基上的应用问题文档。

很可能你有一个扩展模块,它并不是为了在子解释器中运行而设计的。上面的设置强制它在主解释器中运行。

撰写回答