【问题标题】:Trouble with command line execution or R script file from within Python shellPython shell 中的命令行执行或 R 脚本文件出现问题
【发布时间】:2015-09-15 22:03:53
【问题描述】:

我目前正在使用 optparse 包将 R 脚本文件转换为接受 C 样式长短标志的命令行可执行文件。该程序在 Ubuntu 上运行。整个应用程序的执行由一个 Python 脚本控制,该脚本(1)首先使用os.systemscript.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) 

这会返回错误:

sh: 1: script.R: not found
32512

真正令人费解的是,这在一天前还可以正常工作,现在却出错了。我正在和其他几个人一起开发这个应用程序,所以我想知道这是否可能是由于我的管理权限的更改引起的。我已经验证所有必要的文件都包含在当前工作目录中。

【问题讨论】:

  • 到目前为止,我想出的最好方法是 rm -rf git repo,重新克隆它,然后关闭除一个终端窗口之外的所有窗口。由于某种原因,这有效,程序停止抛出错误。仍然不知道为什么会发生这种情况

标签: python r shell ubuntu


【解决方案1】:

第一次调用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) 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-12
    • 2015-12-30
    • 2018-02-27
    • 1970-01-01
    • 2021-05-17
    • 1970-01-01
    • 1970-01-01
    • 2020-10-28
    相关资源
    最近更新 更多