Enthought Canopy 不创建 .pyc 文件

Enthought Canopy does not create .pyc file

我在 Windows 7.

上使用 Canopy 版本:1.4.1(64 位)

我有两个文件 A.pyB.pyA.py 包含一些模块,B.py 导入 A.py 的模块之一。当我在 A.py 和 运行 B.py 上更改某些内容时,应该创建一个新编译的 A.py (A.pyc) 但在使用 canopy 时情况并非如此IDE.

然而 A.py 确实在重新启动内核 (Ctrl+.) 后编译。

有没有办法在不重启内核的情况下重新编译A.py

请帮帮我。谢谢!

在 python 2 您可以重新加载模块:

reload(A)

在 python 3 您需要导入重新加载:

from importlib import reload
reload(A)

不确定这是否符合问题,但您也可以使用:

python -m compileall .

从命令行指向您的模块目录。

这与 Canopy 本身无关。这就是 Python 通常的工作方式。一旦加载了一个模块,如果你改变它就不是reloaded/recompiled。正如其他答案之一所建议的那样,可以使用 reload 来避免这种情况。过去有过不同的自动重载机制尝试,但 none 其中特别健壮,造成的问题比他们解决的问题更多。

缓存行为将在任何 Python 会话中发生(Canopy、IPython 笔记本、控制台等前端,常规 python shell,服务器进程,...)。

还有其他方法可以解决此问题。在 IPython 和 Canopy 中,您可以使用 !python 命令来执行您的代码,就好像您在 shell 上一样。