gpt4 book ai didi

python - 强制 celery 守护进程使用 Python 3

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:19:29 24 4
gpt4 key购买 nike

所以我已经为此苦苦挣扎了一段时间,但我似乎找不到解决方案。

我已经安装了 celery

pip3 install --user celery

一切正常,直到我按照官方文档尝试运行一个 celery worker 并作为守护进程运行 http://docs.celeryproject.org/en/latest/userguide/daemonizing.html

我遇到的具体问题是守护进程的配置文件需要到 celery 的完整路径,我已经找到并在文件中指定了这样的路径

CELERY_BIN="/home/my_home/.local/bin/celery"

但是当我运行守护进程时,它说我没有名为 Celery 的模块

me@my_computer:/etc/default$ sudo /etc/init.d/celeryd start
celery init v10.1.
Using config script: /etc/default/celeryd
Traceback (most recent call last):
File "/home/my_home/.local/bin/celery", line 7, in <module>
from celery.__main__ import main
ImportError: No module named 'celery'

尝试不同的方法我想我已经找到了问题,显然 Celery 守护进程正在尝试使用 python 2 运行 celery,但是由于我为 python 3 安装了它,它说它找不到它。有关如何解决此问题或我是否应该尝试其他方法的任何线索?

附加输出:

python 2:

Python 2.7.6 (default, Oct 26 2016, 20:32:47) 
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from celery.__main__ import main
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named celery.__main__

python 3:

Python 3.4.3 (default, Nov 17 2016, 01:11:57) 
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from celery.__main__ import main
>>>

最佳答案

你可以使用 venv将调用容器化,以便没有其他 python 二进制文件可用。

我使用 venv 统一容器化地运行我的 django 环境,因为这样你就可以升级一个应用程序的依赖项,而无需升级所有应用程序。您不必将整个应用程序容器化,但您的系统环境可能会与您的 venv 不同步,从而导致奇怪的问题。将 django 和 celery 容器化在同一个 venv 中然后调用它们可能会更好

PATH/TO/VENV/bin/python ...

关于python - 强制 celery 守护进程使用 Python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45617642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com