Generate .pyc from Python AST?

后端 未结 2 397
情深已故
情深已故 2021-02-05 17:09

How would I generate a .pyc file from a Python AST such that I could import the file from Python?

I\'ve used compile to create a code object, then written t

相关标签:
2条回答
  • 2021-02-05 17:19

    The compile standard function provides this function for both Python 2.x and Python 3.x. However, you will find that the AST representation between 2.x and 3.x is quite different, so be prepared for that.

    0 讨论(0)
  • 2021-02-05 17:36

    The solution can be adapted from the py_compile module:

    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)
    

    0 讨论(0)
提交回复
热议问题