如下是在运行以后总是失败,在rq-dashboard中查看到的错误消息:

使用python rq作为队列,但是参考他们的docs没有运行成功

文件的组织目录:

+ index.py
+ test_work
| __init__.py
| a.py

index.py 代码如下:

#coding: utf-8import test_workfrom test_work import afrom redis import Redisfrom rq import Queueif __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-8import 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 defaultd8d8c5ad-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基础没有打牢,求解~


小怪兽爱吃肉
浏览 94回答 1
1回答

慕斯王

你已经&nbsp;from test_work import a&nbsp;了,那就直接用&nbsp;a.count_words_at_url(...)&nbsp;即可。至于&nbsp;ImportError: No module named test_work.a&nbsp;的错误,那是因为你的&nbsp;test_work/__init__.py里面没有&nbsp;import a&nbsp;。所以即便你&nbsp;import test_work&nbsp;也不能直接&nbsp;test_work.a.foo&nbsp;这么用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python