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()