Python2导入|识别缺失的图书馆

时间:2018-01-02 00:43:39

标签: python python-2.7

我正在尝试找到一种方法来识别缺少的库/库,同时导入python尚未安装的库。

我正在创建一个应用程序,它使用一些用户需要自己或其他应用程序安装的库。例如python-requests库。我不希望我的应用程序安装缺少的依赖项,我没有任何安装脚本来安装它们。我只想要一种方法将缺少的库/库打印给用户。有没有办法这样做?如果您打印异常,它会显示“没有名为 modulename 的模块”,并且我想为它制作一个自定义消息。例如“缺少库: modulename ”。有没有办法这样做?

到目前为止,我的代码导入如下:

import sys, os, time, subprocess, pip
try:
    import requests
except ImportError:
    print "[!] It Seems Like You Are Missing Some Dependencies!"
    ind = str(raw_input("[*] Install Missing Dependencies? [Y/N]:"))
    ind = ind.upper()
    if 'Y' in ind:
        pip.main(['install', 'requests'])
    else:
        sys.exit()

2 个答案:

答案 0 :(得分:1)

将Exception数据复制到变量中,并检查它返回的字符串:

import re  # for re.match
try:
  import requests
except ImportError as e:
  errorstring = e.args[0]
  print 'Missing library: "'+re.match(r"No module named (.+)", errorstring).group(1)+'"'

有关args的详细说明,请参阅8.3. Handling Exceptions

答案 1 :(得分:0)

使用try-except块捕获错误并使用raise语句说出您选择的错误消息:

try:
   a = int(input()) 
except:
   raise Exception('There has been            an error in the system')