无法决定是使用 autoenv 还是 python dotenv

ahe*_*eld 3 python environment heroku environment-variables flask

我已经接触过这两种工具,但它们似乎服务于相同的目的。我的问题是它们是否不同,如果是,如何不同?

在我的研究中,在我看来 autoenv 的范围是全局的,而 dotenv 是针对特定应用程序的。虽然这在许多情况下似乎是一个优势,但我想知道它是否也会产生不可预见的问题。

其次,使用一个而不是另一个的优点/缺点是什么(或者我应该在不同的情况下使用每个?)

我已经阅读了每个文档的文档,但一直找不到比较两者的文章。相对最近,我对环境变量有了更深入的了解,所以如果我错过了文档中明显的内容,我深表歉意。

如果这会影响我的选择,我主要使用 Flask 开发 Web 应用程序并部署在 Heroku 上。

提前致谢。

Ale*_*x R 6

autoenv,用于 cli,当您 cd 进入包含 .env 文件的目录时启用环境。

外汇。如果您在 cd 到目录时需要本地开发环境中的一些环境变量,您将使用 autoenv 或更成熟的替代direnv

dotenv 在 python 中用于在运行目录或父目录中查找 .env 文件并加载它们的变量,这对服务很有用,因为它们通常没有运行 shell。

因此,对于您的 heroku 部署,您应该使用 dotenv。

但是,如果您直接在 heroku 设置中放入配置变量,则两者都不需要,您只需使用 os.getenv:

from os import getenv
print(getenv('MY_ENVIRONMENT_VARIABLE'))
Run Code Online (Sandbox Code Playgroud)