两个具有相同名称的Python软件包:如何选择正确的软件包?

时间:2019-03-01 15:12:03

标签: python package

我正在创建一个依赖于python-gnupg PyPi软件包的软件包。在Python中,它作为gnupg导入。 它是在我的软件包安装过程中安装的。

不幸的是,有gnupg PyPi软件包也已在Python中作为gnupg导入。

运行from gnupg import ...时如何确保调用正确的软件包?我希望我的软件包适用于已经在其Python发行版中安装了“错误” gnupg的用户,并且现在这两个软件包都位于其site-packages目录中。

1 个答案:

答案 0 :(得分:1)

您可以按模块的完整路径加载模块。这样,您可以确定加载了哪个:

import importlib.util
spec = importlib.util.spec_from_file_location("module.name", "/path/to/file.py")
foo = importlib.util.module_from_spec(spec)
spec.loader.exec_module(foo)

来自:How to import a module given the full path?