【问题标题】:Sublime text can't get environment variables in pythonsublime text 无法在python中获取环境变量
【发布时间】:2020-07-18 01:45:53
【问题描述】:

我正在尝试在 sublime 文本中运行以下 python 代码

import os
os.environ.get("hello")

我已通过~/.bashrc文件中的以下代码将环境变量中“hello”的值设置为hello world

export hello="hello world"

当我在 sublime 中运行此代码时,它会输出 None,而当我使用命令 python3 main.py 通过终端运行相同的代码时,它会输出正确的值,即 hello world

另外,当我通过终端打开 sublime 并运行命令subl 时,当我再次在 sublime 中运行代码时,它会输出正确的值。

有没有办法,不通过终端打开sublime就可以得到环境变量的正确值?

注意:我运行的是 Ubuntu 20.04

编辑:我已经发现了错误。脚本或崇高没有问题,但是我以错误的方式设置了环境变量。 ~/.bashrc 中设置的环境变量只限于shell。在外壳之外,它们将无法工作。我需要设置系统范围的变量,可以通过更改文件/etc/environment 并以foo="bar" 的形式向其中添加变量来设置。

【问题讨论】:

  • 您的代码是正确的,但除非您将其添加到 bashrc 文件中,否则您打开的任何新终端都不会包含 env 变量。因此,对于您打开的每个新终端,您都必须export hello=world
  • 我确实提到了,我已经添加了 env 变量,并且能够通过终端运行代码来获取值

标签: python environment-variables sublimetext3


【解决方案1】:

尝试将 Python 构建系统添加到 sublime:

转到工具/构建系统/新构建系统并添加:

{
'cmd': ['/usr/bin/python3', '-u', '$file'],
'file_regex': '^[ ]*File "(…*?)", line ([0-9]*)',
'selector': 'source.python'
}

保存文件,然后在:工具/构建系统中选择它

【讨论】:

  • 我已经用完全相同的代码设置了我的 sublime 构建系统。
猜你喜欢
  • 2019-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 2021-10-19
相关资源
最近更新 更多