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

标签 python linux django celery daemon

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

我已经安装了 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/

相关文章:

linux - bash 数学上下文中的操作顺序 : Wrong value assigned

python - 如何在python中生成8字节唯一随机数?

python - 如何在Python中从csv文件创建mdb文件?

ruby - 如何防止 default_environment 变量被 Capistrano 的 sudo 操作设置?

objective-c - Mac OS X 和 Linux 兼容性的最佳编译语言

django - 安装 django.contrib.comments 应用程序后无法同步我的 django 数据库

显示已发布页面和草稿页面的页面上的 Django-CMS 外键

django - 如何在本地测试 Django 的站点框架

python - 重用预先分配的 opencv Mat/Python 对象来调整大小

python - 如何配置python+uwsgi+nginx?