python - uswgi - 无法从 multiprocessing.semaphore_tracker 加载配置
问题描述
目前我正在将我的 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)
解决方案
在我的情况下,这个错误是由于使用 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 进程。
推荐阅读
- vb.net - 检查子字符串在字符串中出现的次数
- c# - 未知事件 DropGesture
- reactjs - 我们还需要用反应钩子状态做浅/深复制吗?
- c# - 使用泛型进行 C# 子类化:我需要一个额外的 ctor 泛型参数,但是如何实现?
- freeradius - Acct-Input-Octets 未知模块
- python-3.x - VS Code 不支持配置的调试类型“python”
- python - 如何在 PyCharm 中导入 .pgn 数据?
- r - 如何生成多个虚拟变量?
- f# - Fable 与 EventTarget 的语法混淆
- modelica - Modelica中图形项的常用定义