Python导入模块后修改代码不重启解释器仍报错的问题咨询
解决Python模块修改后解释器不更新的问题
哈哈,这个坑我太熟了!Python解释器在第一次import模块的时候,会把模块的内容加载到内存里存起来,之后你再调用模块里的函数,它直接用的是内存里的旧版本,根本不会去重新读取你修改后的源文件!所以哪怕你改好了testFunc.py里的代码,只要没重新加载模块,调用的还是原来那个有语法错误的版本。
给你两个简单有效的解决办法:
方法一:用importlib.reload()重新加载模块
在Python 3中,你需要借助importlib模块来重新加载已经导入的模块,步骤如下:
>>> import importlib >>> importlib.reload(testFunc) <module 'testFunc' from '/你的文件实际路径/testFunc.py'> >>> testFunc.helloWorld() hello world
执行完reload之后,解释器就会重新读取你修改后的testFunc.py,更新内存里的模块内容,这时候再调用函数就正常输出了。
方法二:直接重启Python解释器
如果觉得上面的步骤有点繁琐,最直接的办法就是关闭当前的Python交互窗口,重新打开一个新的解释器会话,再依次执行import testFunc和testFunc.helloWorld()——这时候解释器会重新加载修改后的模块,自然就能正常运行了。
小提示
以后每次修改完模块文件后,只要还在同一个解释器会话里,都需要用上面两种方法之一更新模块,不然解释器只会一直用内存里的旧代码哦。
内容的提问来源于stack exchange,提问作者marco
相关产品推荐
相关产品推荐

