问题描述
我正在为 this guide 之后的第一个 Python 包开发 setup.cfg
。它主要有效,但问题是它包含我的包的子文件夹作为顶级包。源树:
setup.cfg
src
Accentizer2
__init__.py
Accentizer.py
Annotation.py
DawgSharp
YaleDawg.py
Russian
Stress.py
Syllable.py
Vowels.py
(我知道,大写是非常规的。我很快就会解决这个问题。)
setup.cfg:
[options]
package_dir =
= src
packages = find:
[options.packages.find]
where = src
exclude =
Accentizer2/DawgSharp
Accentizer2/Russian
这里是 py -m build
的部分输出:
adding 'Accentizer2/Accentizer.py'
adding 'Accentizer2/Annotation.py'
adding 'Accentizer2/__init__.py'
adding 'Accentizer2/DawgSharp/YaleDawg.py'
adding 'Accentizer2/DawgSharp/__init__.py'
adding 'Accentizer2/Russian/Stress.py'
adding 'Accentizer2/Russian/Syllable.py'
adding 'Accentizer2/Russian/Vowels.py'
adding 'Accentizer2/Russian/__init__.py'
adding 'DawgSharp/YaleDawg.py'
adding 'DawgSharp/__init__.py'
adding 'Russian/Stress.py'
adding 'Russian/Syllable.py'
adding 'Russian/Vowels.py'
adding 'Russian/__init__.py'
如您所见,它添加了 DawgSharp
和 Russian
两次:在 Accentizer2 内部和顶层。为什么?它还添加了不属于 src 树的 DawgSharp/__init__.py
和 Russian/__init__.py
。
如何更改我的 setup.cfg
以便生成的包仅包含 DawgSharp
和 Russian
作为子文件夹而不是顶级模块?它们是我的包的用户不应该担心的实现细节。
解决方法
我只需要清理我的构建文件夹。它正在收集旧版本的文件(在它们被移动之前)。