rq总是No module named XX
使用python rq作为队列,但是参考他们的docs没有运行成功
文件的组织目录:
+ index.py
+ test_work
| __init__.py
| a.py
index.py 代码如下:
#coding: utf-8 import test_work from test_work import a from redis import Redis from rq import Queue if __name__=='__main__': q = Queue(connection = Redis()) x=0 while x<10: x+=1 z=2000200+x print x q.enqueue(a.count_words_at_url,'http://book.douban.com/subject/%d/'%z)
a.py 代码如下:
#coding: utf-8 import requests def count_words_at_url(url): resp = requests.get(url) return len(resp.text.split())
在运行以后总是失败,在rq-dashboard中查看到的错误消息:
test_work.a.count_words_at_url('http://book.douban.com/subject/2000201/') from default d8d8c5ad-3ff9-4212-8e98-339fc5cfcc31 Failed 11 minutes ago Traceback (most recent call last): File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/rq-0.3.5-py2.7.egg/rq/worker.py", line 392, in perform_job rv = job.perform() File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/rq-0.3.5-py2.7.egg/rq/job.py", line 340, in perform self._result = self.func(*self.args, **self.kwargs) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/rq-0.3.5-py2.7.egg/rq/job.py", line 133, in func module = importlib.import_module(module_name) File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module __import__(name) ImportError: No module named test_work.a
额……python基础没有打牢,求解~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你已经
from test_work import a
了,那就直接用a.count_words_at_url(...)
即可。至于
ImportError: No module named test_work.a
的错误,那是因为你的test_work/__init__.py
里面没有import a
。所以即便你import test_work
也不能直接test_work.a.foo
这么用。楼上纯粹胡扯。答案很简单也很坑爹:
必须要在你那个【Py文件的目录下的终端】输入rq worker!
不然就找不到