为什么poetry build引发ModuleOrPackageNotFound异常?

2024-09-30 12:26:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用poethy来构建和分发Python源代码包,但是在poetry init之后,我在运行poetry build时遇到了一个错误

  ModuleOrPackageNotFound
  No file/folder found for package mdspliter.tree

Tags: nobuildtreepackageforpoetry源代码init
1条回答
网友
1楼 · 发布于 2024-09-30 12:26:46

理由

找不到它的原因很可能是因为目录层次结构不正确

发布的包不是直接的源代码文件夹,其中有许多东西在最终包中不需要,例如版本控制、测试和依赖关系管理

您应该将与包同名的此文件夹作为包放在该文件夹中

解决方案

  1. 更改目录层次结构,以便文件夹中存在具有相应名称的包。例如:
D:\GitRepository\python_distribution\temp\tree
├──_init__.py
├──tree.py
├──pyproject.toml
└──README.rst

D:\GitRepository\python_distribution\temp\tree
├──tree
│  ├──__init__.py
│  └──tree.py
├──pyproject.toml
└──README.rst
  1. pyproject.toml中指定文件夹
packages = [
    { include = "your_folder_as_pack" }
]

变体

如果项目的名称是mdspliter.tree,那么包含文件夹mdspliter.tree就毫无用处,因为此命名方案不符合规范,如果使用poetry new mdspliter.tree,您会发现文件夹的名称实际上应该是mdspliter_tree

(在版本1.2中,此行为已更改为生成多层文件夹,mdsplitter/tree

相关问题 更多 >

    热门问题