如何使用 pyproject.toml 在我的 python 包中包含 .env 文件?

问题描述 投票:0回答:1

我有以下文件夹结构:

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`` 之外没有任何其他文件类型) .
我的toml文件(供参考):

[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 包中?

没用。

python include python-packaging toml .env
1个回答
0
投票

MANIFEST.in
文件(与 src 处于同一级别)中,我包含了以下内容:
recursive-include src/program *
解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.