导入带有连字符的 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
访问它。
我正在寻找一种方法来导入名称中带有连字符的自定义 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
访问它。