我在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
它工作不方便,无法在文件夹的子文件夹中编译文件。我希望你的帮助。
答案 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也会重建。