setuptools - 使用 setup.py 自定义 python 包目录布局
问题描述
假设我有以下目录结构:
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
python/generated
推荐阅读
- mysql - Springbatch 在使用分区步骤时遇到 EmptyResultDataAccessException
- windows - Windows-10 电池指示器 Visual Basic 脚本
- javascript - 使用 javascript 的键盘快捷键 Alt+a 和 Alt+r
- javascript - React - 使用传递的参数更改状态
- typescript - 使用“省略”重新添加从泛型类型中删除的属性会导致类型不兼容
- java - 如何用 JSON 字符串中的实际值替换花括号?
- ios - 集成 apollo ios 客户端时出现“为未命名项目加载架构”错误
- javascript - 覆盖对象属性以进行单元测试
- python-3.x - 在 Python 3 中有没有一种方法,只有在文件中转储数据的用户帐户才能访问加载 json 内容
- java - Spring-security:登录用户页面时获得http状态405