【问题标题】:`Sys.which` does not find an executable file in RStudio`Sys.which` 在 RStudio 中找不到可执行文件
【发布时间】:2021-01-15 13:45:50
【问题描述】:

我使用的是 Ubuntu 18.04、R 3.6.3 和最新版本的 RStudio。我有一个名为brittany 的可执行文件。当我在终端中运行which brittany 时,它被找到了。当我在终端中运行 R 并输入 Sys.which("brittany") 时,会找到它。但是当我在 RStudio 控制台中输入Sys.which("brittany") 时,却找不到。为什么?这个文件的路径是/home/stla/.local/bin/brittany

我找到了一种解决方法:如果我在路径中不包含句点的文件夹中对该文件进行符号链接,则可以找到符号链接并且可以执行它。看起来像一个 RStudio 错误。

【问题讨论】:

标签: r ubuntu rstudio


【解决方案1】:

因此,您的 shell 的 $PATH 值与 RStudio 的不同(在开始时,或通过您的“点”文件)。结果路径显示:/home/$USER/.local/bin 是私有路径,而不是系统路径。

我认为 RStudio 尊重 ~/bin,所以也许可以创建它并添加一个软链接。

另一方面,在我的机器上(Ubuntu 20.04、R 4.0.2、RStudio 1.4.781)我看到了

R> system("echo $PATH")
/home/edd/.local/bin:/home/edd/bin:/usr/local/sbin:/usr/local/bin:\
/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:\
/usr/lib/rstudio/bin/postback
R>

这不是system() 的侥幸,因为Sys.getenv("PATH") 显示相同。

【讨论】:

  • 谢谢。是的,这就是我所做的(~/bin 中的符号链接),这很有效。但是为什么 RStudio 中的 $PATH 与从终端启动的 R 中的不同?我不明白这一点。
  • @StéphaneLaurent bash 控制台会报告与 R 控制台不同的 PATH 曾经有过这种情况。这不是 Rstudio 的发明。但也可能是 Rstudio 实例的 PATH 与裸 R 控制台会话不同。有关使用 R 控制台的情况,请参阅 ?Startup 页面,有关这种情况,请参阅 Rstudio 文档。如果您想了解在 R 与 bash 案例中对此的看法,请查看 markmail.org/search/… 中的一些热门内容
猜你喜欢
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 1970-01-01
  • 2019-01-16
  • 2015-01-25
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多