假设我有以下目录结构:
src/
└── python/
└── generated/
├── __init__.py
├── a.py
└── lib/
├── __init__.py
└── b.py
我的 setup.py
需要是什么样子才能创建目录布局如下的 dist:
src/
└── python/
├── __init__.py
├── a.py
└── lib/
├── __init__.py
└── b.py
目标是简单地消除 generated
文件夹。我已经尝试了无数种 package_dir
的变体,除了原始目录结构之外,什么也得不到。
最佳答案
您的 setup.py
应该放在您的 src
目录中,并且应该如下所示:
#!/usr/bin/env python3
import setuptools
setuptools.setup(
name='Thing',
version='1.2.3',
packages=[
'python',
'python.lib',
],
package_dir={
'python': 'python/generated',
},
)
注意 package_dir
设置。它指示 setuptools
从目录 python/generated
中获取 python
包的代码。然后,在构建的 发行版中,您将找到正确的目录结构。
关于setuptools - 使用 setup.py 自定义 python 包目录布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57811009/