【发布时间】:2016-10-12 10:43:18
【问题描述】:
PEP 423 声明项目名称和包名称应该相同,然后给出example where the project/package name contains a dot:
是的:
包名:“kheops.pyramid”,即import kheops.pyramid
项目名称:“kheops.pyramid”,即pip install kheops.pyramid
kheops.pyramid 的目录结构是什么?如何为该目录结构写入setup.py(特别是name 和packages 值)?
我还看到PEP 503 声明应通过将_、- 和. 替换为- 来规范化名称。这是否意味着应该使用kheops-pyramid 而不是kheops.pyramid?如果是这样,我是否不需要目录名称为kheops-pyramid 的包,并且- 在尝试import kheops-pyramid 时不会导致问题(例如语法错误)?
编辑:
我试图使一个项目/包kheops.pyramid 遵守PEP 423,但我无法弄清楚什么目录结构和setup.py 组合将允许我在pip install kheops.pyramid 之后import kheops.pyramid 而不会出现ImportError: No module named kheops.pyramid 之类的错误。
【问题讨论】:
-
你看过“命名空间包”吗?参见例如python.org/dev/peps/pep-0420
-
@jonrsharpe 我以前没见过 PEP 420。这似乎确实相关,但我不确定我是否仍然了解如何解决我的问题。
-
您的问题是什么?您是否尝试制作名称中带有
.的软件包但失败了? -
@jonrsharpe 是的。我正在尝试制作像
username.package这样的项目/包以遵守 PEP 423 python.org/dev/peps/pep-0423/… 但我无法弄清楚什么目录结构和setup.py组合将允许我在import username.package之后pip install username.package没有像 @ 这样的错误987654352@。将编辑问题以使其更加明显。 -
您需要先存在
kheops才能使kheops.pyramid成为可能。