Python shell 中的命令行执行或 R 脚本文件出现问题
Trouble with command line execution or R script file from within Python shell
我目前正在使用 optparse
包将 R 脚本文件转换为命令行可执行文件,该文件接受 C 风格的长短标志。该计划在 Ubuntu 上 运行。整个应用程序的执行由 Python 脚本控制,该脚本 (1) 首先使用 os.system
在 script.R
文件上调用 chmod
,如下所示:
import os
os.system("chmod +x script.R; export PATH=$PATH:`pwd`")
然后我尝试再次从 Python 中使用 os.system
执行程序,如下所示:
program_call = "script.R --arg1 1"
os.system(program_call)
这个returns错误:
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)
我目前正在使用 optparse
包将 R 脚本文件转换为命令行可执行文件,该文件接受 C 风格的长短标志。该计划在 Ubuntu 上 运行。整个应用程序的执行由 Python 脚本控制,该脚本 (1) 首先使用 os.system
在 script.R
文件上调用 chmod
,如下所示:
import os
os.system("chmod +x script.R; export PATH=$PATH:`pwd`")
然后我尝试再次从 Python 中使用 os.system
执行程序,如下所示:
program_call = "script.R --arg1 1"
os.system(program_call)
这个returns错误:
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)