【问题标题】:Running R script from Shell using CygWin: error "Rscript not found"使用 CygWin 从 Shell 运行 R 脚本:错误“未找到 Rscript”
【发布时间】:2014-05-26 09:32:58
【问题描述】:

这是我第一次尝试从 CygWin 终端运行 R 文件。 我有一个名为 linreg.R 的文件,我与 CygWin 终端中的文件位于同一目录中。 在同一目录中有一个 shell 脚本,它接收输入 linreg.R 和另一个 data.txt(位于其他地方)。

当我使用适当的输入运行 bash 时,它一次又一次地给我同样的错误:

$ ./build_model_from_directory.sh linreg.R /workdir/workdir/prod_data_v.txt lm_try
./build_model_from_directory.sh: line 27: type: Rscript: not found
Rscript is needed for linreg.R. Exiting

当我这样写的时候:

$./build_model_from_directory.sh linreg.Rscript /workdir/workdir/prod_data_v.txt lm_try
Script assumes linreg.Rscript in same directory

这是 linreg.R 的第一行

#!/usr/bin/env Rscript

我尝试将路径设置为PATH=$PATH:C:\\ProgramFiles\\R\\R-3.0.1\\bin 但没有用。它已经更改了 PATH,但脚本仍然没有运行。

任何帮助将不胜感激。

【问题讨论】:

  • cygwin 使用 unix 路径,你应该给:/cygwin/c/ProgramFiles/R/R-3-3.0.1/bin
  • 您好,感谢您的帮助。我厌倦了这个,但它给了我同样的错误!当我做$which R 它给了我which: no R in (..)
  • 我的感觉,你安装了windows版本的R,但是尝试在Unix中使用。在windows中是R.exe或者racript.exe
  • @BMW .. 是的,你在写.. 我从未使用过 Unix 版本的 R,我在 Windows8 上工作。我无法理解您对 R.exe 的看法。我应该如何处理 R.exe?我将 linreg.R 的 shebang 更改为 Rscript.exe,但它仍然显示第一个错误。

标签: shell command cygwin rscript


【解决方案1】:

将它添加到您的 .bashrc 文件中可能值得您花时间:

echo 'PATH=$PATH:/cygdrive/c/Program\ Files/R/R-3.2.3/bin' >> .bashrc

【讨论】:

    【解决方案2】:

    我一次又一次地发现了自己犯的错误。

    cygpath 用于查找 UNIX 环境中目录路径的实际表示

    例子:

    $ cygpath 'C:\Program Files\R\R-3.0.1\bin'
    /cygdrive/c/Program Files/R/R-3.0.1/bin
    

    所以我们需要确保 PATH 变量具有Program Files 而不是ProgramFiles。 由于 UNIX 不理解特殊字符,我们需要将 Program Files 之间的空格倒转

     $ PATH=$PATH:/cygdrive/c/Program\ Files/R/R-3.0.1/bin
    

    之后它开始识别 R 文件。

    【讨论】:

    • 我通过进入 Windows 7 的环境变量来设置 PATH。 Cygwin 上的 PATH 是正确的,但我得到“'C:\Program' 不被识别为内部或外部命令、可运行程序或批处理文件”。这么近,这么远……
    • 我首先在我的 cygwin .bashrc 中尝试了很多不同的方法,当它不起作用时,我去了 Wndows 7 高级系统设置。
    • 你的echo %PATH% 说什么?自从我很久以前切换到 Mac 后,我不知道如何在 windows 中检查 PATH 变量。
    • 高级系统设置PATH为C:\ProgramData\Oracle\Java\javapath;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell \v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Rtools\bin;C:\Rtools\gcc-4.6.3 \bin;C:\Program Files\RAA\R\R-3.3.0\bin\x64
    • echo $PATH 在 Cygwin 中吐出 /usr/local/bin:/usr/bin:/cygdrive/c/ProgramData/Oracle/Java/javapath:/cygdrive/c/windows/system32:/ cygdrive/c/windows:/cygdrive/c/windows/System32/Wbem:/cygdrive/c/windows/System32/WindowsPowerShell/v1.0:/cygdrive/c/Program Files/Intel/WiFi/bin:/cygdrive/c /Program Files/Common Files/Intel/WirelessCommon:/cygdrive/c/Rtools/bin:/cygdrive/c/Rtools/gcc-4.6.3/bin:/cygdrive/c/Program Files/RAA/R/R-3.3 .0/bin/x64:/usr/lib/lapack
    猜你喜欢
    • 1970-01-01
    • 2016-06-12
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-09-24
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    相关资源
    最近更新 更多