如何检查 Python 包是否已安装?

pythonserver side programmingprogramming更新于 2024/1/4 23:15:00

在 Python 中,我们有许多模块和包需要安装才能使用。我们有各种方法来检查 Python 环境中是否安装了 Python 包。

包是一个包含一个或多个 Python 模块的目录,还包含 __init__.py 文件,这是一个初始化文件。要使用该包,我们必须通过其名称导入它。

这些可以是内置包,也可以允许开发人员创建可重用的代码,这些代码可以导入到其他程序中,从而避免代码重复。

使用 try 和 except

当我们尝试在未安装的情况下在 Python 中导入任何包时,将生成异常。我们可以捕获异常并使用 try-except 块显示适当的消息。

如果我们将 import 语句包装在此块中以防出现异常,则 except 块中的语句将被执行(如果有)。

示例

以下是 try 和 except 的示例。在这里,如果包被导入而没有错误,则表明包已安装,否则将引发异常

try:
    import Numpy as np
    print("包已安装")
except ImportError as error:
    print(error)

输出

没有名为"Numpy"的模块

示例

在前面的例子中,我们导入了 Numpy,因为模块区分大小写,所以引发了错误。因此,现在我们导入 numpy 时,拼写正确,大小写敏感。

try:
    import numpy as np
    print("包已安装")
except ImportError as error:
    print(error)

输出

以下输出使用 try 和 except 方法检查 python 包是否已安装。

包已安装

使用 importlib.util

在 python 中,我们有一个名为 importlib.util 的模块,可用于检查给定的 python 包是否已安装。

示例

在此示例中,我们将尝试将包的名称传递给 find_spec() 函数importlib.util,模块。

import importlib.util
package = "django"
if importlib.util.find_spec(package) is None:
    print(package,"未安装在 python 环境中")
else:
    print(package,"已安装")

输出

django 未安装在 python 环境中

使用 pkgutil 模块

pkgutil 是 python 中可用的模块,它提供与包一起使用的实用程序。它有一个函数,即 find_loader() 函数,可帮助我们检查给定的包是否已安装。

示例

在此示例中,我们将包名称传递给 pkgutil 模块的 find_loader() 函数;然后它将返回给定的包是否已安装。

import pkgutil
package = "pandas"
if pkgutil.find_loader(package) is None:
    print(package,"is not mounted in python environment")
else:
    print(package,"is mounted")

输出

pandas is mounted

使用 pkg_resources 模块

我们在 python 中有一个名为 pkg_resources 的模块,它有一个名为 get_distribution() 的函数,用于检查包是否已安装。

示例

在此示例中,我们将包名称作为输入参数传递给 get_distribution()) 函数pkg_resources 模块然后它返回状态。

import pkg_resources
package = "numpy"
try:
    pkg_resources.get_distribution(package)
    print(package,"is mounted")
except pkg_resources.DistributionNotFound:
    print(package,"is not mounted")

输出

以下是输出 –

numpy is mounted

示例

让我们看另一个示例来了解 pkg_resources 模块的工作原理。

import pkg_resources
package = "andas"
try:
    pkg_resources.get_distribution(package)
    print(package,"is installed")
except pkg_resources.DistributionNotFound:
    print(package,"is not installed")

输出

输出显示为 –

The output is displayed as –

andas is not installed

相关文章