Heroku 配置变量出现在控制台中,但在使用 os.environ.get 访问时设置为 None

Heroku config variables appear in console but are set to None when accessing with os.environ.get

我正在尝试将文件上传到 S3 存储桶,我正在使用 this 教程。我在终端中使用 heroku config:set 设置配置变量,当我在终端中输入 heroku config 时,我的变量出现了。

但是,如果我在本地 运行 时在代码中访问 S3_BUCKET,则返回的值为 None:

S3_BUCKET = os.environ.get('S3_BUCKET')
print("value of S3_BUCKET: " + S3_BUCKET)

这会打印 None.

有谁知道为什么这不起作用?如果重要的话,我的应用程序的前端是在 React 中,但是所有存储桶上传代码都是在 python.

中完成的

heroku config:set 在 Heroku 上设置变量 。顾名思义,环境变量特定于特定环境。以这种方式设置的设置不会影响您的本地计算机。

有多种方法可以在本地设置环境变量。一种常见的方法是将它们放入未跟踪的 .env 文件中。许多工具,包括 heroku local,在本地 运行 时读取该文件并将在那里找到的变量添加到环境中。

Heroku recommends this, though you will have to make sure whatever tooling you use picks up those variables. Aside from heroku local, Visual Studio Code understands .env files for Python projects. So does Pipenv. There are also standalone tools for this like direnv.