【问题标题】:Trouble deciding whether to use autoenv or python dotenv无法决定是使用 autoenv 还是 python dotenv
【发布时间】:2019-04-05 11:23:53
【问题描述】:

我接触过这两种工具,但它们的用途似乎相同。我的问题是它们是否不同,如果不同,如何?

在我的研究中,在我看来,autoenv 的范围是全局的,而 dotenv 则更具体一些应用程序。虽然这在许多情况下似乎是一个优势,但我想知道它是否也会产生无法预料的问题。

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

我已经阅读了每个文档,但找不到比较两者的文章。总的来说,我对环境变量有了更深入的了解,所以如果我遗漏了文档中明显的内容,我深表歉意。

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

提前致谢。

【问题讨论】:

  • 所以这很酷,来自 Flask 的 github: :param load_dotenv: 加载最近的 :file:.env 和 :file:.flaskenv 文件来设置环境变量。还将工作目录更改为包含找到的第一个文件的目录。还有:如果安装,python-dotenv 将用于从 :file:.env 和 :file:.flaskenv 文件加载环境变量。
  • 那么你决定了哪一个,什么时候使用dotenv或autoenv?

标签: python heroku flask environment-variables environment


【解决方案1】:

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'))

【讨论】:

  • 感谢您的清晰解释。肯定回答了我的问题。
猜你喜欢
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多