exc_type example python sys

example - python: sys no está definido



sys python example (3)

Estás intentando importar todos esos módulos a la vez. Incluso si uno de ellos falla, el resto no importará. Por ejemplo:

try: import datetime import foo import sys except ImportError: pass

Digamos que foo no existe. Entonces solo se importará datetime .

Lo que puede hacer es importar el módulo sys al principio del archivo, antes de la instrucción try / except:

import sys try: import numpy as np import pyfits as pf import scipy.ndimage as nd import pylab as pl import os import heapq from scipy.optimize import leastsq except ImportError: print "Error: missing one of the libraries (numpy, pyfits, scipy, matplotlib)" sys.exit()

Tengo un trozo de código que funciona en Linux, y ahora estoy intentando ejecutarlo en Windows, importo sistemas pero cuando uso sys.exit () Me sale un error, sys no está definido. Aquí está la parte inicial de mi código.

try: import numpy as np import pyfits as pf import scipy.ndimage as nd import pylab as pl import os import heapq import sys from scipy.optimize import leastsq except ImportError: print "Error: missing one of the libraries (numpy, pyfits, scipy, matplotlib)" sys.exit()

¿Por qué el sistema no funciona?


Mueve el sistema de import sys fuera del bloque try - except :

import sys try: # ... except ImportError: # ...

Si cualquiera de las importaciones anteriores a la línea de import sys falla, el resto del bloque no se ejecuta, y el sys nunca se importa. En su lugar, la ejecución salta al bloque de manejo de excepciones, donde luego intenta acceder a un nombre que no existe.

sys es un módulo incorporado de todos modos, siempre está presente ya que contiene las estructuras de datos para rastrear las importaciones; Si falla la importación de sys , tiene problemas más grandes en su mano (ya que eso indicaría que toda la importación del módulo está rota)


Supongo que su código falló ANTES de importar el sistema, por lo que no puede encontrarlo cuando maneja la excepción.

Además, debes sangrar el código dentro del bloque try .

tratar:

import sys # .. other safe imports try: import numpy as np # other unsafe imports except ImportError: print "Error: missing one of the libraries (numpy, pyfits, scipy, matplotlib)" sys.exit()