2009-10-29 21 views
0

Le look de sortie du journal Psyco comme ceci:psyco se plaint de l'opcode 54 non pris en charge, qu'est-ce que c'est?

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      % % 

les lignes en question

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) 

suivant:

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 

Je suis un peu à perte ce que le problème peut être . Des idées?

Répondre

2

Trouver le nom de l'opcode en utilisant le numéro est en fait assez facile (ci-dessous utilise Python 2.6.2 sur Ubuntu, vous pouvez obtenir des résultats différents):

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

Bien sûr, savoir ce que cela signifie exactement est une autre question entièrement. :-)

+1

Ah, c'est un moyen beaucoup plus facile de trouver ce que sont les opcodes ... Je suis allé fouiller dans 'Python/Lib/opcode.py' pour trouver' def_op ('STORE_MAP', 54) ' – ephemient

+0

avec cette information, j'ai trouvé http: //thomas.apestaart.org/log/?p=927 donc le problème est évidemment que STORE_MAP est nouveau dans Python 2.6 et probablement pas supporté par Psyco. Je suppose que je vais essayer d'exécuter mon programme avec python 2.5, que cela ne devrait plus arriver. – Mauli

0

Avez-vous compilé avec une autre version de Psyco avec laquelle vous exécutez le script?

+0

pas que je sache. J'ai installé psyco avec le gestionnaire de paquets ubuntu. – Mauli