uswgi - 无法从 multiprocessing.semaphore_tracker 加载配置

Mik*_*ers 3 python ubuntu nginx flask uwsgi

目前我正在将 Flask 应用程序部署到 Ubuntu 服务器 (AWS)。当我尝试启动 uwsgi 服务器并使用 journalctl 查看日志时,我注意到一种警告/错误。

我可以忽略它吗?我不知道如何解决它或它来自哪里。现在坚持了2天。谁能帮我?

错误:

 *** Operational MODE: preforking ***
Jan 04 15:27:11 ip-172-31-39-12 uwsgi[21781]: unable to load configuration from from multiprocessing.semaphore_tracker import main;main(10)
Run Code Online (Sandbox Code Playgroud)

Jac*_*son 5

在我的例子中,这个错误是由于将 uWSGI 2.0.17.1 与 Flask 1.0.2 和 scikit-learn 0.20.0 一起使用。

在内部,scikit-learn 导入 joblib,它在导入时尝试生成信号量跟踪进程 (sklearn/externals/joblib/_multiprocessing_helpers.py)。

信号量跟踪过程是通过生成一个带有当前可执行文件名称的命令并附加"-c 'from multiprocessing.semaphore_tracker import main;main(fd)" 来产生的

当前可执行文件的名称应为“python”,但在使用 uWSGI 时并非如此。结果命令是“/usr/local/bin/uwsgi -c 'from multiprocessing.semaphore_tracker import main;main(fd)”,它失败并输出上述错误消息。

此处记录的解决方法是设置环境变量 JOBLIB_MULTIPROCESSING=0。

请注意,在我的情况下,这样做的唯一后果是生成一个最终被清理的失效 uWSGI 进程。