1
我试图重新加载一个已经装sys.modules中内模块模块,但不知何故,重装()似乎不工作。 (编译()+负载会虽然工作,我仍然无法使用,因为它是通过扭曲代码重装)蟒蛇重装无法找到sys.modules中
for loader, module_name, is_pkg in pkgutil.walk_packages(main_module.__path__):
if(not module_name in sys.modules):
module = loader.find_module(module_name).load_module(module_name)
else:
module = sys.modules.get(module_name)
#this is unhelpful
#sys.path.append(module.__path__)
#this works
#imp.find_module(module.__name__, module.__path__)
#this doesn't
reload(module)
Traceback (most recent call last):
File "/usr/lib64/python2.7/site-packages/celery/execute/trace.py", line 36, in trace
return cls(states.SUCCESS, retval=fun(*args, **kwargs))
File "/usr/lib64/python2.7/site-packages/celery/app/task/__init__.py", line 232, in __call__
return self.run(*args, **kwargs)
File "/usr/lib64/python2.7/site-packages/celery/app/__init__.py", line 172, in run
return fun(*args, **kwargs)
File "/home/myuser/Dropbox/job-pipe/job_pipe/apps/tasks/crawl.py", line 71, in crawl
crawler = CrawlerScript()
File "/home/myuser/Dropbox/job-pipe/job_pipe/apps/tasks/crawl.py", line 37, in __init__
reload(module)
ImportError: No module named example
什么是重载的正确方法?我认为这是由find_module引起的,尽管它似乎正常工作,并且错误没有帮助。
谢谢。
你怎么导入模块? – Carpetsmoker 2012-02-05 12:36:53
导入模块的代码位于使用module = loader.find_module(module_name).load_module(module_name)导入的代码之上。在重新加载之前重新导入模块并不能解决问题,重新加载仍然会崩溃 – user1190564 2012-02-05 14:52:43
您应该发布完整的回溯,而不仅仅是异常。 – 2012-02-06 13:22:48