heroku 无法确定是使用autoenv还是python dotenv

oknrviil  于 2023-03-12  发布在  Python
关注(0)|答案(1)|浏览(135)

我接触过这两种工具,但它们似乎服务于相同的目的。我的问题是它们有区别吗?如果有区别,是如何区别的?
在我的研究中,autoenv似乎是全局的,而dotenv则是特定于应用程序的,虽然这在许多情况下似乎是一个优势,但我想知道它是否也会产生不可预见的问题。
第二,使用一个比另一个的优点/缺点是什么(或者我应该在不同的情况下使用每一个?)
我已经通读了每一个的文档,但是没有找到比较这两个的文章。这是相对较新的,我已经开发了一个更好的掌握环境变量一般,所以道歉,如果我错过了一些明显的文档。
我主要是用Flask开发Web应用程序,如果这会影响我的选择,我会部署在Heroku上。
先谢了。

e4yzc0pl

e4yzc0pl1#

autoenv用于cli,以便在cd进入包含.env文件的目录时启用环境。
例如,如果在cd到目录时需要本地开发环境中的一些环境变量,则可以使用autoenv或更成熟的替代方案direnv
dotenv在python中用于在运行目录或父目录中查找.env文件,并加载它们的变量,这对于服务来说很好,因为它们通常没有shell运行。
因此,对于heroku部署,应该使用dotenv。
然而,如果你直接在heroku设置中输入config变量,你不需要任何一个,你可以简单地使用os.getenv:

from os import getenv
print(getenv('MY_ENVIRONMENT_VARIABLE'))

相关问题