【问题标题】:python 2.7 Tkinter reading environment variablespython 2.7 Tkinter 读取环境变量
【发布时间】:2017-08-24 18:02:07
【问题描述】:

我是在 pythyon 2.7 中使用 Tkinter 的新手,无法读取我在树莓派上定义的环境变量。
我已经阅读了大多数问题是因为没有导出环境变量,但不确定这是我的问题。谁能告诉我我做错了什么?

python 应用程序从 bash 脚本运行

这行得通,我可以运行 bash 脚本并回显环境变量的内容。

#!/bin/bash
export USR_USR
echo $USR_USR
python netid_button2.py

这很有效,当我使用一个非常简单的 python 脚本并使用 Tkinter 时,我可以读取环境变量 PATH。

#!/usr/bin/python

import Tkinter
import os

top = Tkinter.Tk()

vusr_usr = get('PATH')
user_envd = open('user_envd.txt','w+')
user_envd.write('v_usr= ' + str(vusr_usr) + '\n')
user_envd.close()

top.mainloop()

这不起作用。我无法读取为我的应用程序创建的环境变量。

#!/usr/bin/python

import Tkinter
import os

top = Tkinter.Tk()

vusr_usr = get('USR_USR')
user_envd = open('user_envd.txt','w+')
user_envd.write('v_usr= ' + str(vusr_usr) + '\n')
user_envd.close()

top.mainloop()

【问题讨论】:

  • 您的示例都不起作用,因为get 不是已知命令。请发布实际运行的代码。
  • 对不起,我在那里使用的是 vusr_usr = os.environ.get('USR_USR') 。搜索时有人说他们只使用了 get(),但你是对的,不,那不起作用。

标签: python bash tkinter


【解决方案1】:

假设您有一个在 bash 中设置的环境变量 FOO,例如:

export USR_USR=somevalue

这是您在 python 中访问相同环境变量的方式:

import os

print os.environ["USR_USR"]

"somevalue"

python 程序的其余部分将能够访问该环境变量

【讨论】:

  • 谢谢,但我正在尝试从 Python Tkinter 应用程序中读取环境变量,而不是创建一个。我不知道为什么我可以读取 PATH 环境,但无法读取我创建的 USR_USR 环境变量。
  • os.environ 包含所有环境变量。我更新了我的代码以访问您在 bash 脚本中创建的代码
  • 哦,是的,这也适用于我。但是,我还导入了 Tkinter,这样我就可以制作一个 gui,我认为那是我无法再读取环境变量的时候。这有意义吗?
  • 不,没有意义。
  • USR_USR 没有价值的原因是你的 bash 脚本中的第 2 行。如果你导出一个环境变量而不设置它等于任何东西,它与设置它等于 None 是一样的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-27
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 2012-09-05
相关资源
最近更新 更多