我对某事感到困惑。 我有一个 python 包,它依赖于
Config
类中的硬编码值。
完成一些阅读后,我想移动到 .env
文件并将 .env
文件中的值加载到 Config 类中。这里没有问题。
我的困惑在于包装/分发的主题。我的包将安装在计算机上并由用户在本地运行。根据我上面的方法,我对如何确保
.env
文件中的值包含在打包阶段感到困惑。
我最初使用
setup.py
文件和 distutils
,但我正在迁移到 pyproject.toml
和 build
进行打包。
如果有任何关于如何实现这一目标的提示,我将不胜感激。
我已经搜索了
setuptools
文档,但没有看到任何明显的东西。我确实在入口点 env
中看到了对 require(env=None, installer=None)
的引用,但不确定这是否是我所指的同一环境。
我还查看了 distutils 文档并发现
distutils.util.check_environ()
但我还是不知道如何设置环境。
因此您已经从
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"]
如果您需要任何其他帮助或者这不是您想要的帮助,请在下面发表评论。