无法编组byteplay代码对象?

时间:2012-01-14 03:48:51

标签: python

我有以下代码。我正在使用byteplay编译代码并且代码编译,dis.dis(c)工作正常,但marshal.dump()错误:

ValueError: unmarshallable object

知道我在这里做错了吗?

code.append((RETURN_VALUE, None))
c = Code(code, [], [], False, False, False, str(Symbol.intern(self.getNS().__name__, "<string>")), "<str>", 0, None)
import marshal
import pickle
import py_compile
import time
import dis

dis.dis(c)
codeobject = c.to_code()

with open('output.pyc', 'wb') as fc:
    fc.write(py_compile.MAGIC)
    py_compile.wr_long(fc, long(time.time()))
    marshal.dump(c, fc)

1 个答案:

答案 0 :(得分:0)

我不是byteplay的专家,但不应该是:

codeobject = c.to_code()
...
marshal.dump(codeobject, fc)