11

我只是在使用 Celery 做我的第一步。我创建了一个小示例,该示例基于http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html中描述的步骤当我尝试使用手动启动工作者时

celery -A my_example worker --loglevel=info

我运行时出错,因为找不到来自我的 virtualenv 的模块。virtualenv 被激活并安装了模块,所以我假设 celery 正在使用我的全局 python 解释器。我检查了

celery worker --help

但找不到指定某个解释器或 virtualenv 的参数。有人可以告诉我如何在 virtualenv 中手动启动工作人员吗?

更新:

我在我的全局 python 环境和我的 virtualenv 中安装了 Celery。我删除了这两个版本并仔细检查了两个版本是否都已删除。然后我在我的virutalenv 中安装了 Celery。如果我现在调用celery命令行工具,则会出现以下错误:

-bash: /usr/local/bin/celery: No such file or directory

如果将在全球范围内安装该工具,那就是安装该工具的位置。那么 Celery 是否可以在 virtualenv 中工作?

4

1 回答 1

7

试图在 virtualenv 中干净地安装 celery(而不在全局系统解释器中安装它):

mkdir celery-test
cd celery-test
virtualenv-2.7 .python
source .python/bin/activate
pip install celery
celery worker --help

它完美地工作,which celery给了我:

/home/user/projects/celery-test/.python/bin/celery

正如预期的那样。

我建议您重新运行终端会话(PATH 可能存在问题)。

如果它没有帮助,那么您可以检查您的 PATH 变量以查找为什么来自 virtualenv 的 celery 不可见。

如果 PATH 没有问题,但问题仍然存在,请尝试从头开始重新创建您的 virtualenv。

编辑:

另一个建议:检查输出:

which celery

它应该指向某个路径,但也可以像这样使用别名:

celery: aliased to /somepath/bin/celery

如果它实际上是某个东西的别名,那么您需要检查您的~/.bashrc( ~/.zshrc) 或~/.bash_profile( ~/.zprofile),甚至是/etc/profile.d/*文件夹的内容。你需要摆脱这个别名。

于 2013-10-20T16:22:38.630 回答