Python shell中的命令行执行或R脚本文件出现问题
我目前正在使用Python shell中的命令行执行或R脚本文件出现问题,python,r,shell,ubuntu,Python,R,Shell,Ubuntu,我目前正在使用optparse包将R脚本文件转换为命令行可执行文件,该文件接受C样式的长和短标志。该程序正在Ubuntu上运行。整个应用程序的执行由Python脚本控制,该脚本(1)首先使用os.system调用script.R文件上的chmod,如下所示: import os os.system("chmod +x script.R; export PATH=$PATH:`pwd`") program_call = "script.R --arg1 1" os.system(program
optparse
包将R脚本文件转换为命令行可执行文件,该文件接受C样式的长和短标志。该程序正在Ubuntu上运行。整个应用程序的执行由Python脚本控制,该脚本(1)首先使用os.system
调用script.R
文件上的chmod
,如下所示:
import os
os.system("chmod +x script.R; export PATH=$PATH:`pwd`")
program_call = "script.R --arg1 1"
os.system(program_call)
然后,我再次尝试在Python中使用os.system
执行该程序,如下所示:
import os
os.system("chmod +x script.R; export PATH=$PATH:`pwd`")
program_call = "script.R --arg1 1"
os.system(program_call)
这将返回错误:
sh: 1: script.R: not found
32512
真正令人费解的是,就在一天前,它还可以正常工作,但现在却出了问题。我正在和其他几个人一起开发这个应用程序,所以我想知道这是否是由我的管理权限的更改引起的。我已经验证了所有必需的文件都包含在当前工作目录中 对
os.system
的第一次调用中对PATH
环境变量的更改不会延续到第二次调用,因为这是一个单独的shell进程。如果您改为在Python中修改PATH
,它应该可以工作。试一试
os.environ['PATH'] += ":" + os.getcwd()
os.system("chmod +x script.R")
program_call = "script.R --arg1 1"
os.system(program_call)
到目前为止,我想到的最好办法是rm-rf git回购协议,重新克隆它,并关闭除一个终端窗口外的所有窗口。由于某种原因,这会起作用,程序会停止抛出错误。还是不知道为什么会发生这种事