如何使用python重新载入导入的文件?Python 2.7如何导入和重新导入
def ClickOpenMyFile(self):
import myfileinquestion
我想这unimport和进口回来,如果已经进口...
据supposded工作?没有错误,但不为我工作
try:
import myfile
except:
reload(myfile)
如何使用python重新载入导入的文件?Python 2.7如何导入和重新导入
def ClickOpenMyFile(self):
import myfileinquestion
我想这unimport和进口回来,如果已经进口...
据supposded工作?没有错误,但不为我工作
try:
import myfile
except:
reload(myfile)
好的,真正的卸载不存在于Python中。 (如弗拉基米尔已经提到)
假设您有以下内容的文件foo.py:
NAME = "MyName"
def foo_funct():
print "foo.foo_funct called", NAME
导入和reloding正常工作:
>>> import foo
>>> foo.foo_funct()
foo.foo_funct called MyName
>>> foo.NAME = "ANewName"
>>> foo.foo_funct()
foo.foo_funct called ANewName
>>> reload(foo)
<module 'foo' from 'foo.pyc'>
>>> foo.foo_funct()
foo.foo_funct called MyName
如果我理解你的权利,这是你想要的:
try:
reload(foo)
except NameError:
import foo
如果foo还不是我的重装将会失败并伴有NameError mported。所以赶上这一个,然后执行一个正常的导入。
首先,有很多类似的问题。例如这一个:How do I unload (reload) a Python module?
没有通用的方式来跟踪已经加载的模块的任何变化;你可能想跟踪你自己的任何chage。但是,如果源代码已更改,则有一些模块可用于执行重新加载。在某些情况下,tornado.autoreload可能对您有用。
http://stackoverflow.com/questions/437589/how-do-i-unload-reload-a-python-module – Vladimir
这不是为了重新加载,如果改变,但在任何情况下重新加载,如果已经加载 –