【问题标题】:system function usage from Rstudio in linux environmentlinux环境下Rstudio的系统函数使用
【发布时间】:2020-10-13 23:24:09
【问题描述】:

当我在 Linux 环境中从命令行调用 R 时,我的 R 脚本中有以下行,

system('spectre run.scs -f psfascii +l mylog.txt >> /dev/null')

但是当我通过从命令行启动 RStudio 来运行此脚本时,同一行不起作用,

spectre 是一个有效的命令,在调用 R 时有效,但在 rstudio 时该命令未被识别。

注意事项:spectre 命令来自除 R 之外的外部模块,我在调用 R 和 rstudio 之前已将其加载到 linux 终端中,如下所示。

使用 R 和 RStudio 的 PATH 编辑

当我从命令行运行 which spectre 并检查其路径时,

> Sys.getenv("PATH")
[1] "/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/bin:/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/arch:/tool/eda/apps/mentorCalibre/2014.2_33.25/aoi_cal_2014.2_33.25/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/tools/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/share/oa/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/dfII/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/bin:/tool/pandora64/bin:/tool/pandora64/sbin:/tool/pandora/bin:/tool/pandora/sbin:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/opt/puppetlabs/bin"

但是当我在 R studio 中检查路径时,

> Sys.getenv("PATH")
[1] "/tool/pandora64/.package/qt-5.5.1/bin:/tool/pandora64/.package/R-3.4.3/bin:/tool/pandora64/.package/rstudio-99.9.9/app/bin:/bin:/usr/bin:/tool/eda/apps/cadenceMMSIM/13.11.292:/tool/eda/apps/cadenceMMSIM/13.11.292"

【问题讨论】:

  • 在 shell 命令行(R 和 RStudio 都不是)上,输入 which spectre。无论它为您提供什么路径,请在 RStudio 中使用该完整路径。您可以通过分析 R 和 RStudio repl 循环中的 Sys.getenv("PATH") 来了解它们的不同之处,以了解后者可能在较小(或至少不同)列表上运行。
  • @r2evans 是的,我可以看到 R 和 Rstudio 中的 PATH 是不同的。我附上了我在 Q 中看到的不同路径。你能建议如何在 Rstudio 中更改路径吗?
  • Sys.setenv(PATH="....new_path..."),或者更简单地使用完整的系统,如system('/path/to/spectre .....')
  • 是的,它有效,非常感谢!!

标签: r rstudio


【解决方案1】:

@r2evans 在评论区提出了答案,

通过在命令行中从 R 环境中复制路径来更改 Rstudio 中的 PATH,

 Sys.setenv(PATH="/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/bin:/tool/eda/apps/synopsysHspice/2013.03-SP2/hspice/arch:/tool/eda/apps/mentorCalibre/2014.2_33.25/aoi_cal_2014.2_33.25/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/tools/bin:/tool/eda/apps/cadenceMMSIM/13.11.292/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/share/oa/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/dfII/bin:/tool/eda/apps/cadenceICOA/6.1.6.500.11/tools/bin:/tool/pandora64/bin:/tool/pandora64/sbin:/tool/pandora/bin:/tool/pandora/sbin:/usr/lib64/qt-3.3/bin:/bin:/usr/bin:/opt/puppetlabs/bin")

【讨论】:

    猜你喜欢
    • 2015-09-16
    • 1970-01-01
    • 2016-07-03
    • 2010-12-11
    • 2015-08-04
    • 2010-09-21
    • 2012-05-01
    • 1970-01-01
    相关资源
    最近更新 更多