.env 文件和 python 包分发

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

我对某事感到困惑。 我有一个 python 包,它依赖于

Config
类中的硬编码值。 完成一些阅读后,我想移动到
.env
文件并将
.env 
文件中的值加载到 Config 类中。这里没有问题。

我的困惑在于包装/分发的主题。我的包将安装在计算机上并由用户在本地运行。根据我上面的方法,我对如何确保

.env
文件中的值包含在打包阶段感到困惑。

我最初使用

setup.py
文件和
distutils
,但我正在迁移到
pyproject.toml
build
进行打包。

如果有任何关于如何实现这一目标的提示,我将不胜感激。

我已经搜索了

setuptools
文档,但没有看到任何明显的东西。我确实在入口点
env 
中看到了对
require(env=None, installer=None)
的引用,但不确定这是否是我所指的同一环境。

我还查看了 distutils 文档并发现

distutils.util.check_environ()
但我还是不知道如何设置环境。

python setuptools packaging distutils .env
1个回答
0
投票

因此您已经从

setup
导入了
setuptools

要包含 .env 文件,请将其添加到包数据中并将包含包数据设置为

True
。如下完成。

setup(
    ... # whatever other arguments you have already like the name, etc.
    package_data={'': ['.env']},
    include_package_data=True,
)

假设你的包名为

mypkg
(我没有测试过下面的内容,但这应该可行),你可以在
pyproject.toml
中执行此操作,如下所示。这假设
.env
位于根目录中。

[tool.setuptools.package-data]
mypkg = [".env"]

如果您需要任何其他帮助或者这不是您想要的帮助,请在下面发表评论。

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