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

Cod*_*pra 5 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)
}
Run Code Online (Sandbox Code Playgroud)

ras*_*sar 5

使用异常处理,然后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)
Run Code Online (Sandbox Code Playgroud)

注意:__import__内置模块通过字符串名称导入。一个可能更好的方法是使用该importlib模块,例如importlib.import_module


小智 0

您可以使用异常处理:

try:
    import some_module

except ImportError as e:
    print(e)
    # install module or some operation
Run Code Online (Sandbox Code Playgroud)