R - 永久设置环境变量

时间:2018-04-09 17:34:45

标签: r environment-variables

我想为我的Reticulate包设置Python的默认发行版。我用,

Sys.setenv(RETICULATE_PYTHON = "/usr/local/bin/python3")

但是,每次启动时我都必须重新输入这行代码。如何永久设置这个代码,所以我不需要每次都指定我需要的Python分发?

2 个答案:

答案 0 :(得分:5)

在Windows上,按照评论中@Brian Davis的建议使用Sys.getenv('R_USER')来知道主文件夹的位置。在Linux上,Sys.getenv('HOME')应该是您应该使用的普通主文件夹。

现在打开一个终端(如果您使用的是Rstudio的最新版本,则在控制台旁边有一个终端),转到您的主文件夹并添加一个.Renviron文件。您也可以在不使用终端的情况下执行此操作,但是您可能必须确认以点开头的文件的创建。

cd path_to_my_home_Folder
touch .Renviron

在其中添加RETICULATE_PYTHON = /usr/local/bin/python3,并在末尾添加新行。您的文件应如下所示(如果是新文件):

> RETICULATE_PYTHON = /usr/local/bin/python3
>

现在,您应该可以在每个R会话中使用Sys.getenv('RETICULATE_PYTHON')访问您的环境变量,因为R在启动时会在R主文件夹中查找定义环境变量的任何.Renviron文件(请参阅启动文档{ {1}}。

更新29/10/2018

事实证明,用?Startup定义的变量仅在Rstudio中可用,这并不奇怪,因为.Renviron文件是在Rstudio启动时读取的。如果您希望环境变量可用于.Renviron(例如),则可以:

Windows ,使用Rscript实用程序(在“开始”菜单搜索栏中提供)将其添加到用户环境变量中

Mac ,您可以执行与上述完全相同的过程,但是在Modify environment variables而不是.bash_profile上进行。打开终端,然后将自己置于用户根文件夹(通常是终端的默认位置)。添加以下行(等号周围没有空格):

.Rstudio

保存并关闭,重新启动终端。终端在启动时会读取您的 export RETICULATE_PYTHON=/usr/local/bin/python3 ,从而定义了环境变量。现在,即使在非交互式R会话中,您的.bash_profile也应该可用。

答案 1 :(得分:0)

usethis 具有打开主文件夹的文件 .Renviron 的功能。

usethis::edit_r_environ()

打开文件后,您只需要添加您的一对 key=value,保存并关闭它。

RETICULATE_PYTHON=/usr/local/bin/python3