【问题标题】:Unable to access environment variable in Python in Pycharm [duplicate]无法在 Pycharm 中访问 Python 中的环境变量 [重复]
【发布时间】:2023-03-15 04:34:01
【问题描述】:

我正在尝试访问在 ~/.bashrc 文件中导出的环境变量,如下所示。

export ENV=local 并做了source ~/.bashrc。当我在终端中点击 echo $ENV 时,我可以看到值 local

但是在我的 python 项目(它附加到 Pycharm 中的特定 virtualenv)中,当我尝试执行 os.environ['ENV'] 并通过单击它并运行来运行脚本时,它会抛出 KeyError

当我尝试执行 os.environ 时,我在输出中看不到 ENV

可能是什么问题?我猜 virtualenv 应该不会引起任何问题。是真的吗?

OS: Ubuntu 18.04
Python: 3.7.4

【问题讨论】:

  • 我认为您将环境变量添加到 bashrc 的方法可能是错误的,因为如果您在 python 中尝试os.environ,它会列出一些变量并尝试任何该变量,您不会得到错误
  • 所以。我在哪里导出环境变量以便我可以从 python 访问它?
  • 您可以尝试另一种添加环境变量的方法,例如打开 bashrc 文件并直接添加,然后在 python 中使用os.environ[..] 尝试
  • 我就是这么做的。打开bashrc并将变量添加为export ENV=local
  • 试试这个链接的解决方案:askubuntu.com/questions/58814/…

标签: python-3.x ubuntu environment-variables virtualenv environment


【解决方案1】:

试试这个:

export ENV="local"

将此行添加到文件~/.bashrc文件的最后,然后重启终端打开python。

现在:

import os
os.environ['ENV']

它将与预期的输出一起工作。希望对你有帮助:)

【讨论】:

  • 原来问题出在 Pycharm 上。我能够正常运行脚本并接收访问变量。
  • 好的,因为我在我的 virtualenv 中尝试了相同的方法并且它起作用了,这就是为什么再次建议这个答案(对不起,如果它是多余的)
  • 问题解决了还是仍然存在? @SukumarRdjf
  • 如果我直接运行脚本则不会。但在 Pycharm 中,是的。
  • 你能复制你的代码,以便我可以帮忙吗?
【解决方案2】:

事实证明,每次我在 Pycharm 中右键单击并运行脚本时,它都会创建一个 RunConfiguration,其中只包含一个 ENVIRONMENT 变量,即PYTHONBUFFERED=1

而且我无法访问任何其他变量。短期解决方案是我在那个 RunConfiguration 中添加了环境变量ENV=local

它成功了。

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2016-07-14
    • 1970-01-01
    • 2021-05-05
    • 2018-03-17
    • 2020-06-16
    • 2010-11-07
    • 1970-01-01
    • 2015-09-08
    相关资源
    最近更新 更多