防止Python导入编译

1 投票
4 回答
2731 浏览
提问于 2025-04-15 13:52

我有一个Python文件,它会导入一些经常会修改的Python文件。但是我发现,当我修改这些导入的文件时,它们并没有重新编译。请问我该怎么做才能让它们不再编译呢?

4 个回答

1

在Python 2.6中,你可以使用-B这个选项。

1

这里有一些可能对你有帮助的模块:

py_compile模块(http://effbot.org/librarybook/py-compile.htm)可以让你明确地编译模块,而不是像'import'语句那样运行它们。

import py_compile
py_compile.compile("my_module.py")

另外,compileall模块(http://effbot.org/librarybook/compileall.htm)可以编译一个目录下的所有模块。

import compileall
compileall.compile_dir(".", force=1)
3

我觉得这可能不太行,因为这是Python的工作方式。你能做的最好的办法,就是弄一个自动化脚本,先把*.pyc文件删除掉。或者你可以使用一个开发模块,它会自动编译所有的导入模块,试试compile模块。

我个人之前没有遇到过这个问题,但你可以检查一下文件的时间戳。你可以尝试在目录下的所有Python文件上运行touch命令。可以用这个命令:find -name \\*.py -exec touch \\{\\} \\;

撰写回答