提问人:Rodrigo 提问时间:5/19/2022 最后编辑:Rodrigo 更新时间:7/21/2023 访问量:34134
在平面布局中发现多个顶级包
Multiple top-level packages discovered in a flat-layout
问:
我正在尝试从使用 Poetry 的源代码安装一个库,但我收到此错误
error: Multiple top-level packages discovered in a flat-layout: ['tulips', 'fixtures'].
To avoid accidental inclusion of unwanted files or directories,
setuptools will not proceed with this build.
If you are trying to create a single distribution with multiple packages
on purpose, you should not rely on automatic discovery.
Instead, consider the following options:
1. set up custom discovery (`find` directive with `include` or `exclude`)
2. use a `src-layout`
3. explicitly set `py_modules` or `packages` with a list of names
To find more information, look for "package discovery" on setuptools docs
我需要做些什么来修复它?
答:
56赞
Warm_Duscher
6/8/2022
#1
根据对 GitHub 问题的此评论,将以下行添加到 your 可能会解决您的问题:pyproject.toml
[tool.setuptools]
py-modules = []
(就我而言,该注释中提供了其他解决方法,即将作为关键字参数添加到 worked 中的 setup() 函数)py_modules=[]
setup.py
评论
10赞
András Aszódi
8/22/2022
错误消息甚至说“3.明确设置或带有名称列表”。在我的情况下,指定 in 是解决方案(我有另一个在同一级别的目录,令人困惑)。py_modules
packages
packages = ["my_pkg_name"]
[tool.setuptools]
pyproject.toml
setuptools
4赞
Martin Spacek
11/15/2022
请注意,这是一条错误消息,可能于 2022 年 3 月开始出现在 setuptools 版本 61.0.0 (setuptools.pypa.io/en/latest/history.html#v61-0-0) 中。Ubuntu 20.04 附带安装了 45.2.0 版本,似乎 22.04 附带了 59.6.0,因此此错误将来会开始更频繁地出现。此外,为了澄清,解决方法要求将其作为关键字参数添加到函数中。py_modules=[]
setup()
0赞
AstroFloyd
10/8/2023
你会认为,如果其中一个“令人困惑”的选项是软件包名称,那么它就不会那么令人困惑......
0赞
AstroFloyd
11/5/2023
py-modules = []
似乎对我有用,但结果并没有包含我的 Python 文件(仅限元数据)。替换它似乎更好。packages = ["<package name>"]
4赞
Charalamm
7/21/2023
#2
添加以下内容对我有用。这是一个包含许多文件夹的存储库,但只有一个文件夹包含包代码:pyproject.toml
[tool.setuptools.packages.find]
where = ["."] # list of folders that contain the packages (["."] by default)
include = ["<package name>"] # package names should match these glob patterns (["*"] by default)
exclude = [] # exclude packages matching these glob patterns (empty by default)
namespaces = false # to disable scanning PEP 420 namespaces (true by default)
评论
site-packages
tulip
似乎是带有 python 绑定的 C++ 库,但它的配置方式不正确,看起来,看这里