在 Windows 中,要设置新变量 = 值,我们可以简单地将其添加到环境变量中。但是在 Linux 中,这看起来有点困难。这是我遵循的程序:
打开终端并写入:
vim ~/.bashrc
然后按键盘“i”,然后定义变量如下:
Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin
然后:wq
在 $echo 之后我看到了变量:
echo $Test_MyVariable
并返回:
泰斯特
但在我的 Sublime Text 中它返回 None 。
import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)
没有任何
我甚至检查了所有可用的 os.environ,但找不到我的Test_MyVariable
。此外,我还尝试使用~/.bash_profile
和~/.profile
并向它们添加变量,但结果相同。请告诉我我做错了什么?
答案1
当您在 中定义变量时~/.bashrc
,该变量将在“获取”(读取)后立即存在~/.bashrc
。这仅在您启动新 shell 时发生(例如,当您打开新终端时)。
因此,如果您将新行添加到.bashrc
文件,则需要打开一个新终端并在那里运行您的 Python 脚本。或者,您可以运行source ~/.bashrc
以将其源化到当前 shell 中。
现在,您提到了 sublime,但并没有真正解释为什么这很重要,所以我假设您正在 sublime 编辑器中以某种方式运行您的 python 脚本。据推测,它有某种 shell 模拟器。如果是这样,那么如何以及在何处定义变量的细节将取决于 sublime 如何设置其 shell。尝试以下操作:
只需关闭 sublime 窗口然后再次打开它,看看它是否已重新读取您的
.bashrc
。Sublime 很可能
.bashrc
根本无法读取。如果您从某个 GUI 按钮运行 Sublime,您可能需要注销并重新登录,然后它才能重新读取变量。尝试打开一个新终端并运行
sublime
(或从命令行启动 sublime 的任何命令名称)。那么它能看到变量吗?