从R运行.exe:Linux而非Windows上的状态127警告
我正在.exe
使用R从R 调用system("script.exe object")
。
我懂了Warning: running command had status 127
。我知道这意味着.exe
找不到该文件。
我在窗户上。当我使用它shell
而不是system
它的魅力时。但是,我正在设计一个Shiny应用程序,该应用程序将部署在Linux环境(shinyapps.io)中。这就是为什么我需要使用system
。
在Windows上,它可以system(paste("cmd.exe /c", "script.exe object"), intern = FALSE,
wait = TRUE)按照此处的建议使用。但是当我在Linux上部署应用程序时却没有。
在Windows本地上,如果我system
用system2
:替换system2(paste("cmd.exe /c", "script.exe
object"), wait = TRUE),它会status 127
发出警告,并且 的
。
在此处创建可复制的示例很困难,但是如果需要,我可以尝试。请告诉我。
上下文:基本上.exe
是一个黑匣子(编译的C++代码),它使用.txt文件作为输入并输出另一个.txt文件。我正在使用R将.txt文件转储到当前工作目录中,然后回读由.exe
(在.exe
存储该文件的当前工作目录中创建的)生成的.txt文件。
回答:
问题实际上源于以下事实:.exe
文件仅是Windows的可执行文件。它在Linux环境中不是开箱即用的(您可以使用WINE,但是在我的情况下这是不可能的,因为我是从R内部调用可执行文件的,我sudo
在虚拟机所使用的虚拟机上没有任何权限或任何权限。我的应用的主机)。因此,我在Linux虚拟机上编译了使用g
编写的c 代码,并使用了.out
文件而不是.exe
。
然后在我的R脚本中,我只需要以下两个调用:
system("chmod a+x script.out") # to make Linux understand that the file is an
executablesystem("./script.out object") # to run the script
以上是 从R运行.exe:Linux而非Windows上的状态127警告 的全部内容, 来源链接: utcz.com/qa/402141.html