2016-02-14 71 views
0

我想有python建议在发生导入错误时使用python包。python异常处理程序推荐包

我想:

except ImportError as e: 
    sys.exit("'Error: Try sudo pip install %s'" % e) 

但这是输出:

'Error: Try sudo pip install No module named 'Crypto'' 

我想输出是:

'Error: Try sudo pip install Crypto' 

我该怎么办呢?

更新: 它非常哈克,但这里的东西,似乎工作:

except ImportError as e: 
    e = e.replace("No module named '", "") 
    e = e.replace("'", "") 
    sys.exit("'Error: Try sudo pip install %s'" % e) 

回答

1

使用ImportError.name

>>> try: 
...  import fakecrypto 
... except ImportError as e: 
...  ex = e 
... 
>>> dir(ex) 
['__cause__', '__class__', '__context__', '__delattr__', '__dict__', 
'__dir__', '__doc__', '__eq__', '__format__', '__ge__', 
'__getattribute__', '__gt__', '__hash__', '__init__', '__le__', 
'__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', 
'__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', 
'__subclasshook__', '__suppress_context__', '__traceback__', 'args', 
'msg', 'name', 'path', 'with_traceback'] 
>>> ex.name 
'fakecrypto'