导入带有连字符的 python 自定义包

importing a python custom package with hyphen

我正在寻找一种方法来导入名称中带有连字符的自定义 python 包。我认为连字符不是推荐的方法,但由于它是一个共享项目,我无法控制它。

这里的想法是,我想添加一个 bash 脚本,在安装所有软件包后检查安装是否成功。

我可以使用以下方式验证它:

<PYTHON_VERSION> -c "import <PACKAGE_NAME>" &> /dev/null
if [[ $? -ne 0 ]]; then
    echo "Failed"
fi

我看到我能够成功安装这个自定义包,因为我使用以下方法检查了虚拟环境:

>>> import pkg_resources
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
   for i in installed_packages])
print(installed_packages_list)

并且还 pip freeze 查看已安装的软件包。

但是在导入时我看到如下错误:

>>> import build-config
  File "<stdin>", line 1
    import build-config
                ^
SyntaxError: invalid syntax

>>> import build_config
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'build_config'

有什么指点吗?

您可以使用 importlib 模块。

像这样使用 importlib.import_module(name, package=None) 函数导入

import importlib
module_name = importlib.import_module('module-name')

然后使用module_name访问它。