从Python AST生成.pyc?

如何从Python AST生成.pyc文件,以便我可以从Python导入文件?

我使用编译创建一个代码对象,然后将co_code属性写入文件,但是当我尝试从Python导入文件时,我会在output.pyc中得到一个ImportError:Bad magic number.

该解决方案可以从py_compile模块改编:

import marshal
import py_compile
import time
import ast

codeobject = compile(ast.parse('print "Hello World"'), '<string>', 'exec')

with open('output.pyc', 'wb') as fc:
    fc.write('\0\0\0\0')
    py_compile.wr_long(fc, long(time.time()))
    marshal.dump(codeobject, fc)
    fc.flush()
    fc.seek(0, 0)
    fc.write(py_compile.MAGIC)
翻译自:https://stackoverflow.com/questions/8627835/generate-pyc-from-python-ast

转载注明原文:从Python AST生成.pyc?