我在重载时读了很多但是我无法使用重载功能。在imp.py本身有一些错误。我没有做任何改动。
>>> import imp
>>> imp.reload('fileread')
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
imp.reload('fileread')
File "C:\Python33\lib\imp.py", line 258, in reload
raise TypeError("reload() argument must be module")
TypeError: reload() argument must be module
fileread存储在python的正确目录中。
答案 0 :(得分:3)
您需要将实际模块对象传递给imp.reload()
。
如果您只有模块名称,请在sys.modules
mapping中查找模块对象:
import sys
import imp
imp.reload(sys.modules['fileread'])
这仅适用于已导入的模块;如果您的某些条目尚未导入,请至少抓住KeyError
跳过这些:
try:
imp.reload(sys.modules[modulename])
except KeyError:
# not loaded, no point in reloading
pass
或者,您可以使用importlib.import_module()
来加载此类模块。