如何检查 Python 包是否已安装?
在 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