我有以下文件夹结构:
program_root/
- src/
- tests/
- data/
- templates/
- docs/
- build/
- dist/
- pyproject.toml
- setup.py
- README
- requirements.txt
我的src/布局:
src/
program/
- _init_.py
p1/
- .env
- module2.py
- module3.py
p2/
-module4.py
-module5.py
我已经将其打包并安装到我的 venv 中,看看它是否工作正常。我发现我的 .env 文件没有包含在 p1 包中,其余所有文件都包含在内。
(我没有存储在 .env 文件中的秘密,并且很高兴将其包含在我的包中)
我已在我的 toml 文件中包含以下内容:
[tool.setuptools.package-data]
"*" = ["*.*"]
如 glob 模式所示,应包含我的
src
文件夹中的所有文件。但事实并非如此,所有 .py 文件都被包含,但 .env 文件不包含(我的 src 文件夹中除了 ``.env`` 和 ``.py`` 之外没有任何其他文件类型) .[build-system]
requires = ["setuptools>=67.0.0", "wheel"]
build-backend = "setuptools.build_meta"
[tool.setuptools]
package-dir = {"" = "src"}
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
"*" = ["*.*"]
[project]
name = "program"
version = "1.0.0"
authors = [
{name="xyz", email="[email protected]" },
]
dynamic = ["dependencies"]
[tool.setuptools.dynamic]
dependencies = {file = ["requirements.txt"]}
如果我在这里做错了什么,请帮助我理解。
使用
[tool.setuptools.package-data]
'src' = ['.env']
来自 如何使用 pyproject.toml 将 .json 文件包含在 python 包中?
没用。
在
MANIFEST.in
文件(与 src 处于同一级别)中,我包含了以下内容:
recursive-include src/program *
解决了这个问题。