强制芹菜守护进程使用Python 3
所以我已经为此挣扎了很长一段时间,但我似乎找不到解决办法 我已经装上了芹菜强制芹菜守护进程使用Python 3,python,linux,django,celery,daemon,Python,Linux,Django,Celery,Daemon,所以我已经为此挣扎了很长一段时间,但我似乎找不到解决办法 我已经装上了芹菜 pip3 install --user celery 在我尝试运行芹菜工人并按照官方文档作为守护程序运行之前,一切都很正常 我遇到的具体问题是,守护进程的配置文件需要到芹菜的完整路径,我在文件中找到并指定了芹菜,如下所示 CELERY_BIN="/home/my_home/.local/bin/celery" 但是当我运行守护进程时,它说我没有一个名为芹菜的模块 me@my_computer:/etc/default
pip3 install --user celery
在我尝试运行芹菜工人并按照官方文档作为守护程序运行之前,一切都很正常
我遇到的具体问题是,守护进程的配置文件需要到芹菜的完整路径,我在文件中找到并指定了芹菜,如下所示
CELERY_BIN="/home/my_home/.local/bin/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'
您可以使用将调用容器化,以便没有其他python二进制文件可用
我使用venv统一运行django环境,因为这样您就可以升级一个应用程序的依赖项,而无需升级所有应用程序。你不必将整个应用程序打包,但是你的系统环境可能会与你的venv不同步,从而导致奇怪的问题。最好将django和芹菜装在同一个venv中,然后像这样调用它们
PATH/TO/VENV/bin/python ...
您可以使用将调用容器化,以便没有其他python二进制文件可用
我使用venv统一运行django环境,因为这样您就可以升级一个应用程序的依赖项,而无需升级所有应用程序。你不必将整个应用程序打包,但是你的系统环境可能会与你的venv不同步,从而导致奇怪的问题。最好将django和芹菜装在同一个venv中,然后像这样调用它们
PATH/TO/VENV/bin/python ...
您可以使用将调用容器化,以便没有其他python二进制文件可用。@RossRogers如果这是一个愚蠢的问题,很抱歉。我不太熟悉venv,我正在使用芹菜和django服务器来运行这个守护进程,我应该将整个内容容器化还是只使用芹菜?我使用venv统一容器化运行django环境,因为这样你就可以升级一个应用程序的依赖项,而无需升级所有依赖项。您不必将整个应用程序打包,但这样您的系统环境可能会与您的venv不同步,从而导致奇怪的问题。“把django和芹菜装在同一个容器里可能会更好。”罗丝罗杰斯:好的,谢谢你的明确解释。我会试试看,然后把结果告诉你。@RossRogers你的方法是正确的。如果你想添加答案,我会选择正确的答案。你可以使用容器化调用,这样就没有其他python二进制文件可用。@RossRogers如果这是一个愚蠢的问题,我很抱歉。我不太熟悉venv,我正在使用芹菜和django服务器来运行这个守护进程,我应该将整个内容容器化还是只使用芹菜?我使用venv统一容器化运行django环境,因为这样你就可以升级一个应用程序的依赖项,而无需升级所有依赖项。您不必将整个应用程序打包,但这样您的系统环境可能会与您的venv不同步,从而导致奇怪的问题。“把django和芹菜装在同一个容器里可能会更好。”罗丝罗杰斯:好的,谢谢你的明确解释。我会试试看,然后把结果告诉你。@RossRogers你的方法是正确的。如果你愿意添加一个答案,我会选择它作为正确的答案。
PATH/TO/VENV/bin/python ...