Rq: RQ Worker 返回:ModuleNotFound:没有名为“xxxx”的模块

创建于 2018-04-20  ·  6评论  ·  资料来源: rq/rq

你好呀,
这不是一个正确的问题,但我可以帮助我在这里找到一些帮助,因为我正在关注http://python-rq.org/docs/中描述的一个非常基本的 python-rq 示例,但它不能正常工作。

我创建了两个 python 文件,如下所示:


requests_test.py
`导入请求

def count_words_at_url(url):
resp = requests.get(url)
返回 len(resp.text.split())`

rq_test_1.py
`从 rq 导入队列
从 Redis 导入 Redis
进口时间
导入请求测试

redis_conn = Redis()
q = Queue('TT', connection=redis_conn) # 无参数表示默认队列
工作 = q.enqueue(requests_test.count_words_at_url, 'http://nvie.com')
打印(作业。结果)
时间.sleep(2)
打印(作业。结果)


所以我多次执行 rq_test_1.py 以便将作业添加到队列中。 之后,我通过在终端控制台 (Linux) 上键入“rqworker TT”来启动我的 worker。

工作人员获得了作业,但由于找不到 requests_test 模块,因此无法执行它们。

我做错了什么?
工人日志: https ://ibb.co/hiCQ7S

最有用的评论

你的目录结构是什么样的? 您在哪个目录中启动工作人员? 如果您尝试“绕过工人”部分会发生什么:http: //python-rq.org/docs

所有6条评论

你的目录结构是什么样的? 您在哪个目录中启动工作人员? 如果您尝试“绕过工人”部分会发生什么:http: //python-rq.org/docs

请检查您的导入路径并确保您的代码可以导入requests

嗨, @selwin@yosemitebandit ,我认为这不是这个问题的完美解决方案。 我将它与 Django 一起使用,我有一个类似的问题,RQ 的入队函数无法找到导入的函数,并且还想要一些具体的原因。 我也为此搜索了很多。 文档中也没有对此进行讨论。

大家好,我也面临同样的问题。

可以有一个样本或蓝图来了解为什么会发生这种情况。 我确定我的路径有些问题,但 3 小时后我没有解决这个问题。

@matabares如果您使用的是 Django 框架,则可以使用

import django
django.setup()

如果您不使用 Django,请确保将相关设置文件的路径提供给您的工作脚本。
我希望它会奏效。

对我来说,这部分文档很有用: https: //python-rq.org/docs/workers/#performance -notes

特别是,我通过以下方式启动我的工作人员的文件

w = Worker(qs)
w.work()

没有导入我试图添加到队列中的函数,因此工作人员不知道该函数存在

此页面是否有帮助?
0 / 5 - 0 等级