2011-05-17 15 views
7

Al ejecutar un script mío Python 3, encuentro un error de "Número mágico malo" (mientras el script intenta importar otro módulo). Al principio me imaginé que era porque hay archivos .pyc creados por Python 2. Eliminé el directorio __pycache__ y rehice el script, pero el intérprete todavía me da el mismo error al importar ese módulo. ¿Algunas ideas?Error de número mágico persiste incluso después de reconstruir el archivo .pyc

ACTUALIZACIÓN: Para aclarar, debo mencionar que la declaración de importación en el script no causa el error por sí mismo. Aquí está el seguimiento de la pila:

Traceback (most recent call last): 
    File "../mvc/test.py", line 6, in <module> 
    from property import Property 
    File "/home/mostafa/python/mvc/property.py", line 1, in <module> 
    from owned import owned 
    File "/home/mostafa/python/owned/__init__.py", line 1, in <module> 
    from list import OwnedList 
ImportError: Bad magic number in /home/mostafa/python/list.pyc 
+0

Una pregunta similar a la tuya: http://stackoverflow.com/questions/514371/whats-the-bad-magic-number-error. ¿Ha verificado que su importación del módulo no depende de ningún otro módulo o __builtins__? – Vijay

+0

Sí revisé esa pregunta. Mi script tiene solo dos importaciones: una es sys (que funciona bien ya que se coloca antes que la otra) y otra es el otro módulo que causa el error. – Elektito

+0

Quizás intente ejecutar 'python -v script.py'. La bandera '-v' hará que python imprima todas las importaciones a medida que se cargan los módulos. Esto puede proporcionar una pista sobre dónde está ocurriendo el problema. – unutbu

Respuesta

12

La última línea de la traza de la pila muestra la ruta del archivo de pyc que causa el error:

ImportError: Bad magic number in /home/mostafa/python/list.pyc 

Asumiendo que tiene list.py en su PYTHONPATH, puede eliminar /home/mostafa/python/list.pyc. Cuando importe list, Python3 generará una nueva versión de list.pyc basada en list.py.

Cuestiones relacionadas