首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Python AST生成.pyc?

从Python AST生成.pyc?
EN

Stack Overflow用户
提问于 2011-12-25 09:49:28
回答 2查看 3.3K关注 0票数 13

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-25 12:20:03

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

代码语言:javascript
复制
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)

票数 18
EN

Stack Overflow用户

发布于 2011-12-25 09:55:35

compile标准函数为Python2.x和Python3.x提供了此函数。但是,您会发现2.x和3.x之间的AST表示有很大的不同,所以要做好准备。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8627835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档