我在Windows 7上使用Canopy版本: 1.4.1 (64位)。
我有两个文件A.py和B.py。A.py包含了一些模块,B.py导入了A.py的一个模块。当我在A.py上更改某些内容,然后运行B.py时,应该创建一个新的编译A.py (A.pyc),但在使用冠层集成开发环境时并非如此。
但是,A.py在重新启动内核(Ctrl+.)后确实会被编译。
是否有一种无需重新启动内核就可以重新编译A.py的方法?
请帮帮我。谢谢!
发布于 2015-03-17 11:45:03
这与冠层本身没有任何关系。这就是Python一般的工作方式。加载模块后,如果更改模块,则不会重新加载/重新编译该模块。使用reload可以避免这一点,就像其他答案中所建议的那样。在过去有不同的尝试,有自动重新加载机制,但没有一个是特别强大,造成更多的麻烦,他们解决的。
缓存行为将发生在任何Python会话中( IPython前端,如笔记本、控制台等)、常规Python、服务器进程、.)。
有其他方法可以解决这个问题。在IPython和Canopy中,您可以使用!python命令执行代码,就像在shell上一样。
发布于 2015-03-17 10:56:52
在python 2上,您可以重新加载模块:
reload(A)在python 3上,您需要导入重载:
from importlib import reload
reload(A)发布于 2015-03-17 11:27:42
不确定这是否适合这个问题,但您也可以使用:
python编译所有。
从命令行指向模块dir。
https://stackoverflow.com/questions/29097191
复制相似问题