【问题标题】:How to structure python project with dot "." or underscore "-" in project/package name?如何用点“。”构造python项目或项目/包名称中的下划线“-”?
【发布时间】: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(特别是namepackages 值)?

我还看到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 成为可能。

标签: python packages pep


【解决方案1】:

PEP 423 is deferred,所以我通过标准 python 打包结束了与pyramid 等效的操作,而不是kheops.pyramidHere is the package我想出了一个例子。

【讨论】:

    【解决方案2】:

    from username import package 应该可以工作。

    你确定你的PYTHONPATH 吗?

    您可能想尝试在PYTHONPATH=. 之后执行系统命令?这是因为你可能没有设置PYTHONPATH 包含包含username/ 的目录

    您可能还想查看Python Package Structure

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2018-09-02
      • 2022-01-15
      • 1970-01-01
      • 2021-10-07
      • 2022-12-21
      相关资源
      最近更新 更多