Python:以编程方式将Python包编译为pyc或pyo文件

Ram*_*hum 7 python compilation pyc

这是我的测试套件.

我在一个临时文件夹中有一个自动生成的Python包.这是所有.py文件.我想以编程方式将这些文件编译成(a).pyc和(b).pyo文件.(一个测试会做.pyc,另一个测试会做.pyo.)当然,这应该由主动解释器来完成.我不想导入模块,只需编译.

我怎样才能做到这一点?

Emi*_*Sit 10

在你的Python lib目录中,会有一个名为compileall.py(例如/usr/lib/python2.6/compileall.py)的脚本.

在您的代码中,生成(例如,通过使用os.spawnl)compileall.py指向包含您生成的代码的目录的调用.如果使用python -O它调用它将生成.pyo文件; 如果你使用python它调用它将生成.pyc文件.

我想,诀窍是使用正确版本的Python解释器调用.

compileall.pypy_compile在引擎盖下使用.

  • 请注意,调用`compileall`模块的正确方法是使用`python -m compileall`,而不是`python/path/to/compileall.py`.并通过`sys.executable`找出Python解释器的位置 (6认同)