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

gbl*_*uer 4 python pypi

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

Z4-*_*ier 5

导入语法中不允许使用连字符。在 'neat-python' 的情况下,该软件包只是安装为 'neat':

import neat
Run Code Online (Sandbox Code Playgroud)

您可以通过查看您的 site-packages 目录(对我而言,即/usr/local/lib/python3.7/site-packages)来自行检查。

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


d_k*_*etz 0

从 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)
Run Code Online (Sandbox Code Playgroud)