如何在执行时检查并安装Python中缺少的模块

时间:2018-01-04 14:31:37

标签: python

我正在研究一个将分发给我们客户的Python程序。

他们的要求是程序应该在没有人工干预的情况下处理所有事情。

如何在执行代码时检查并安装Python中缺少的模块?在R中,我可以使用下面提供的代码。

如何在Python中复制类似内容?

# Check and install missing packages in R
list.of.packages <- c("RDCOMClient", "htmlTable")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages) > 0) {
  install.packages(new.packages)
}

2 个答案:

答案 0 :(得分:3)

使用异常处理,然后使用pip安装模块:

import pip

def install(package):
    pip.main(['install', package])

def install_all_packages(modules_to_try):
    for module in modules_to_try:
        try:
           __import__(module)        
        except ImportError as e:
            install(e.name)

注意:__import__内置导入模块的字符串名称。最好的方法是使用importlib模块,例如importlib.import_module

答案 1 :(得分:0)

您可以使用异常处理:

try:
    import some_module

except ImportError as e:
    print(e)
    # install module or some operation