使用pip从列表中安装软件包

9 浏览
0 Comments

使用pip从列表中安装软件包

我正在尝试使用pip安装一系列的包。

我使用的代码是:

import pip
def install(package_name):
        try:
            pip.main(['install', package_name])
        except:
            print("Unable to install " + package_name)

这段代码运行正常,如果一个包不可用,它会报错:

No matching distributions found

然而,我想要做的是,如果安装失败(例如:无效的包名),我想要打印失败的包。

有什么办法可以做到吗?

任何帮助都将不胜感激,谢谢。

admin 更改状态以发布 2023年5月23日
0
0 Comments

您可以检查包的值以验证是否找到匹配的分发。如果存在安装的候选,通常包将返回0,否则将返回1表示未找到候选项

import pip
def install(package_name):
    package = pip.main(['install', package_name])      
    result = "Package successfully installed: " if package == 0 else "Unable to find package: "
    print(result + package_name)

因此,如果您尝试执行以下操作:

>>> install("Virtualenvs")

将返回:

Collecting virtualenvs
Could not find a version that satisfies the requirement virtualenvs (from versions: )
No matching distribution found for virtualenvs
Unable to find package: virtualenvs

因为"Birtualenvs"没有有效的包。但是,如果有一个有效的包:

>>> install("virtualenv")

将返回:

Requirement already satisfied: virtualenv in/usr/lib/python2.7/dist-packages
Package successfully installed: virtualenv

0
0 Comments

尝试检查返回值是否为非零,这表示安装中发生了错误。并不是所有的错误都会触发异常。

import pip
def install(package_name):
        try:
            pipcode = pip.main(['install', package_name])
            if pipcode != 0:
                print("Unable to install " + package_name + " ; pipcode %d" % pipcode)
        except:
            print("Unable to install " + package_name)

0