【问题标题】:os.getenv returns empty output - pythonos.getenv 返回空输出 - python
【发布时间】:2020-10-13 05:49:07
【问题描述】:

我是 python 新手,在执行 os 命令时遇到了一些问题。

我已将environment variables 设置为如下所示

SPARK_HOME = '/opt/spark'
HAIL_HOME  = '/opt/hail/hail'

当我输入 os.getenv('SPARK_HOME') 时,我得到以下输出

'/opt/spark/'

但是当我输入os.getenv('HAIL_HOME') 时,我得到空白输出

请注意,我使用 jupyter notebook 从虚拟环境中输入了上述两个命令。

  1. 为什么它适用于spark 而对于hail 返回空

可以指导我解决这个问题吗?

【问题讨论】:

  • HAIL_HOME 应该是 'HAIL_HOME',字符串标识符而不是变量。
  • 抱歉,更新了帖子。即使使用HAIL_HOME,它也会返回空输出
  • 您可以通过打印os.environ 来调试程序的环境变量。如果那里缺少您要查找的内容,您可能应该添加设置环境变量并启动您的应用程序的命令或脚本。
  • 你能帮我解决你评论的第二部分吗?这是you should probably add command or script that sets env variables and starts your app
  • 我可以知道为什么我要找的物品丢失了吗?

标签: python jupyter-notebook operating-system python-os


【解决方案1】:

根据我们对聊天的讨论,确定了几个问题。

变量设置与环境变量设置混淆。所以设置它们的正确方法应该是:

os.putenv('SPARK_HOME', '/opt/spark')
os.putenv('HAIL_HOME', '/opt/hail/hail')

即使错误的 env 变量设置尝试,SPARK_HOME 也会显示正确的值,因为 jupyter 进程从 shell 继承了该变量。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
  • 2019-11-10
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多