如何从名称中使用连字符的 PyPI 导入包



PyPI中有一个名为neat-python的包(是的,带有连字符(。我可以很好地安装它,但不能将其导入 Python 中。我已经尝试过下划线、括号并将名称设置为字符串,但当然导入语句不允许它们。PyPI 是否真的接受带有非法 Python 名称的包,或者是否有我忽略的解决方案?

导入语法中不允许使用

字符。在"neat-python"的情况下,软件包只是简单地安装为"neat":

import neat

您可以通过查看站点包目录(对我来说,这是/usr/local/lib/python3.7/site-packages(来自己检查这一点。

编辑:是的,这是 PyPI 包允许的,这可能很烦人。通常,实际的软件包名称将是用于从 PyPI 安装的名称的一些非常相似的变体。

从python3.x开始,您可以将importlib用于一些通用模块,该模块实际上在名称中带有连字符进行安装。我将以neat-python为例,即使我被告知它实际上安装neat

--myscript.py--
import importlib
neat = importlib.import_module("neat-python")
# to then call "mymodule" in neat
neat.mymodule(someobject)

相关内容

  • 没有找到相关文章

最新更新