psyco抱怨不支持的操作码54,它是什么?

时间:2009-10-29 20:13:50

标签: python psyco

Psyco日志输出如下所示:

21:08:47.56  Logging started, 10/29/09                  %%%%%%%%%%%%%%%%%%%%
21:08:47.56  unsupported opcode 54 at create_l0:124                      % %
21:08:47.56  unsupported opcode 54 at create_lx:228                      % %

有问题的行

class File:
    def __init__(self, path, header):
        self.path = path
        self.header = header
        self.file = path + '/' + header.to_filename()
        self.pfile = None

    def add_entry(self, entry):                        # line 124
        self.pfile.write(entry.to_binary())

    def open(self):
        self.pfile = open(self.file, 'wb')
        self.pfile.write(self.header.to_binary())

    def close(self):
        self.pfile.close()

    def write(self, data):
        self.pfile.write(data)

下一个:

nat_file = File(target + '/' + name, nat_header)
nat_file.open()
# add first value
nat_file.add_entry(DataBlock(t, q, 0.0, 1, v))
# add all others
while True:
    try:
        t, v, q = f.next()
    except StopIteration:
        break
    nat_file.add_entry(DataBlock(t, q, 0.0, 1, v))
nat_file.close()                                     # line 228

我有点不知道问题可能是什么。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

使用数字查找操作码的名称实际上非常简单(下面在Ubuntu上使用Python 2.6.2,您可能得到不同的结果):

>>> import dis
>>> dis.opname[54]
'STORE_MAP'

当然,找出究竟是什么意思完全是另一个问题。 : - )

答案 1 :(得分:0)

您是否使用其他Psyco版本编译而不是使用?

运行脚本