我刚刚在网上发布了一个 django 应用程序,我的错误日志中出现了这个错误
Fatal Python error: PyEval_AcquireThread: NULL new thread state
我在网上看到了一些类似的问题,但他们没有解释这个错误。
mod_wsgi
如果 apache和mod_python
两者都启用,则可能会出现问题。尝试
sudo a2dismod python
sudo service apache2 restart
这往往表明您的 mod_wsgi 是为不同的 Python 版本和/或不同的 Python 安装编译的,而不是它在运行时尝试使用的 Python 虚拟环境或 Python 安装。
换句话说,您正在混合来自不同 Python 安装的已编译共享库和扩展模块。这可能会导致各种问题。
通过以下检查:
了解您的 mod_wsgi 是如何构建的,并验证它是否符合您的预期。
在我的情况下,它是 Django 或 Flask 项目所在目录的权限。它们是从根目录创建的,因此我将它们更改为 www-data 在我的情况下。