以下代码:
def _IMPORT_(path)
path = abspath(path)
namespace = path[len(getcwd())+1:].replace('/', '_').strip('\\/;,. ')
print(path)
print(namespace)
loader = importlib.machinery.SourceFileLoader(namespace, path+'.py')
handle = loader.load_module(namespace)
print(handle)
importlib.reload(handle)
return handle
产生:
^{pr2}$这在python3.3.5中非常适用,在python3.3.5中引入了此类操作(在此之前,有一些类似的导入机制)。但是在python3.4.2上,这显然行不通。在
3.3.5之后有什么变化?找不到它的任何痕迹,或者更改在发布过程中的某个地方。去年有一个修补程序,在这种情况下,环境变量没有传递,但在这里似乎起作用了。在
在切换文件夹后尝试重新加载文件时,也会出现相同的错误。在
例如:
创建一个简单的模块:
加载模块并打印消息:
^{2}$更改消息:
重新加载模块以获取原始消息:
到目前为止一切都很好。。。在
现在改变路径:
尝试重新加载模块:
在我的例子中,解决方案是切换回最初进行导入的路径。在
确实如此importlib.reload导入似乎只有在正确的目录中才有效。为了解决这个问题,我编写了一个可以调用的helper函数:
相关问题 更多 >
编程相关推荐