如何通过编写python脚本将所有py文件编译到文件夹中的pyc文件?

时间:2012-11-22 11:38:45

标签: python

我在win系统上工作,我想知道一种方法,我可以使用一个可以在cmd行中运行的python脚本来批量编译py文件。 我写了一个简单的python代码。

import py_compile, os, glob
dir = 'D:\\FAS\\config'
for f in glob.glob(dir + '\\*.py'):
    py_compile.compile(f)
    print "Success compile the file:   %s" % f

它工作不方便,无法在文件夹的子文件夹中编译文件。我希望你的帮助。

3 个答案:

答案 0 :(得分:21)

import compileall

compileall.compile_dir('D:/FAS/config', force=True)

答案 1 :(得分:1)

升级库模块时遇到类似问题。我在不同的git分支上有不同的模块版本,当我切换分支时,即使我使用compileall重新编译它们也会停止工作。

我的简单解决方案是从库中删除所有.pyc文件并运行脚本,以便它自己编译所有必需的模块。它工作!!

轻松删除pyc文件find libs/ -name *.pyc -exec rm {} \;

答案 2 :(得分:1)

从命令行编译当前目录和子目录中存在的所有文件 ,您只需使用以下命令即可。

python3 -m compileall . -q

如果要编译文件列表,请删除-q。

您可以通过在-p中使用-l来停止子目录中的递归

python3 -m compileall . -l

您也可以为此编写脚本。

import compileall

compileall.compile_dir('D:/FAS/config', force=True)

即使时间戳是最新的,Force也会重建。

You can read more about it here