【问题标题】:celery 'Worker-n' pid:xxxx exited with 'exitcode 1' when I import hmmlearncelery 'Worker-n' pid:xxxx 在我导入 hmmlearn 时以 'exitcode 1' 退出
【发布时间】:2017-06-14 16:44:44
【问题描述】:

在我的 tasks.py 文件中,当我导入 hmmlearn 时,

from hmmlearn import hmm

并启动我的芹菜工人,我收到以下错误

[2017-06-14 09:18:27,638: INFO/MainProcess] Received task: 
sm.tasks.mytask[4e46806e-6f0f-420f-baac-c727c2a382d4]
[2017-06-14 09:18:27,716: ERROR/MainProcess] Process 'Worker-4' pid:5264 
exited with 'exitcode 1'
[2017-06-14 09:18:29,857: ERROR/MainProcess] Process 'Worker-7' pid:3172 
exited with 'exitcode 1'
[2017-06-14 09:18:29,857: ERROR/MainProcess] Process 'Worker-6' pid:5768 
exited with 'exitcode 1'
[2017-06-14 09:18:29,857: ERROR/MainProcess] Process 'Worker-5' pid:5236 
exited with 'exitcode 1'
[2017-06-14 09:18:31,450: ERROR/MainProcess] Process 'Worker-8' pid:5876 
exited with 'exitcode 1'

在我关闭工人之后,

[2017-06-14 09:19:28,545: WARNING/MainProcess] c:\anaconda3\lib\site-
packages\celery\apps\worker.py:161: CDeprecationWarning:
Starting from version 3.2 Celery will refuse to accept pickle by default.

如果我只是注释掉该导入并使用该导入进行编码,那么一切正常。但是,我可以在 ipython 上将所有任务(包括 hmm 代码)作为独立的 python 代码执行,没有任何问题。

我正在使用带有以下详细信息的 conda 发行版

Current conda install:

           platform : win-64
      conda version : 4.3.21
   conda is private : False
  conda-env version : 4.3.21
conda-build version : 1.21.3
     python version : 3.5.2.final.0
   requests version : 2.14.2

λ conda list | grep celery
celery                    3.1.18                    <pip>

λ conda list | grep kombu
kombu                     3.0.37                    <pip>

λ conda list | grep hmmlearn
hmmlearn                  0.1.1               np111py35_0    omnia

我该怎么办?

【问题讨论】:

  • 你解决了吗?与 pymc3 相同。

标签: rabbitmq celery anaconda conda hmmlearn


【解决方案1】:

这可能是因为 celery 3.1.xx 与台球 3.3 捆绑在一起。

如果您升级该软件包(在撰写本文时升级到 3.5),该服务可能会再次运行。

pip install --upgrade billiard

【讨论】:

    【解决方案2】:

    我只是偶然发现了类似的情况。将billiard 升级到 3.5,正如另一个答案中所建议的那样,不是一种选择(因为它与Celery==3.1.25 冲突,我更喜欢 Windows 支持的特定版本)。

    然而,我发现,在我的情况下,问题很可能是由于 this issue 造成的 - 只有当我在 Worker 进程中尝试从 sklearn 导入任何内容时才会出现此问题。

    通过在sklearnimports 之前添加这个sn-p 之前解决了这个问题:

    from multiprocessing import current_process
    try:
        current_process()._config
    except AttributeError:
        current_process()._config = {'semprefix': '/mp'}
    

    【讨论】:

      猜你喜欢
      • 2018-05-26
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 1970-01-01
      • 2021-02-08
      • 2019-11-25
      • 2019-06-25
      • 2016-03-17
      相关资源
      最近更新 更多