Python psyco抱怨操作码54不受支持,是什么?
Psyco日志输出如下所示:Python psyco抱怨操作码54不受支持,是什么?,python,psyco,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 % % 有问题
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
我有点不知道问题出在哪里。有什么想法吗?您是否使用另一个Psyco版本编译,而不是运行脚本?使用数字查找操作码的名称实际上非常简单(下面在Ubuntu上使用Python 2.6.2,您可能会得到不同的结果):
当然,弄清这到底意味着什么完全是另一个问题。:-) 我不知道。我用ubuntu软件包管理器安装了psyco。啊,这是一种更容易找到操作码的方法。。。我通过
Python/Lib/opcode.py
查找def_op('STORE_MAP',54)
,找到了这些信息,所以问题很明显,STORE_MAP在Python2.6中是新的,并且可能不受Psyco支持。我想我会尝试用Python2.5运行我的程序,这样就不会再发生这种情况了。
>>> import dis
>>> dis.opname[54]
'STORE_MAP'