PyPI中有一个名为neat-python的软件包(是的,带连字符)。我可以很好地安装它,但不能将其导入Python。我已经尝试过使用下划线,括号并将名称设置为字符串,但是import语句当然不允许使用它们。 PyPI是否实际上接受带有非法Python名称的软件包,还是我忽略的解决方案?
答案 0 :(得分:3)
连字符。对于“整洁的python”,该软件包将简单地安装为“整洁的”:
/usr/local/lib/python3.7/site-packages
您可以通过查看您的site-packages目录(对我来说是%SPARK_HOME%/bin/spark-shell --packages saurfang:spark-sas7bdat:2.1.0-s_2.11
)来进行检查。
编辑:是的,PyPI包允许这样做,这可能很烦人。通常,实际的软件包名称会与从PyPI安装的名称非常相似。
答案 1 :(得分:1)
从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)