如何从R和Python中的用户帐户获取环境变量?

时间:2018-11-21 13:43:08

标签: r python-3.x

我已经在cmd提示符下运行了以下命令。

setx SPARK_HOME E:\Raja\Installed_Software\spark-2.4.0-bin-hadoop2.7

它会在我的帐户(我想不是系统帐户)中创建SPARK_HOME。我知道以下代码会从系统帐户中提取SPARK_HOME。

在R中:

> Sys.getenv("SPARK_HOME") 
[1] ""

在Python中

import os
os.environ.get('SPARK_HOME', None)

有什么方法可以从我的帐户中获取SPARK_HOME?谢谢。

2 个答案:

答案 0 :(得分:0)

setx的Microsoft文档说:

  

Setx将变量写入注册表中的主环境。   使用setx变量设置的变量在将来的命令中可用   仅限Windows,不在当前命令窗口中。

因此,如果您是从与运行setx命令相同的cmd窗口中启动或运行R的,则它将不起作用。您必须启动一个新的cmd窗口。

如果您希望持久化,则可以考虑在.Rprofile或.Renviron文件中进行设置,如果不需要持久化,则可以使用set(如@alex_danielssen指出)。

答案 1 :(得分:0)

如果希望立即从当前命令窗口访问变量,请使用SET命令:

set SPARK_HOME='E:\Raja\Installed_Software\spark-2.4.0-bin-hadoop2.7'

正如G. Grothendieck指出的那样,setx命令仅在后续的cmd窗口中有效。