簡體   English   中英

Python 子進程失敗,盡管它在命令行中工作

[英]Python subprocess fails although it works in the command line

我正在嘗試從 Python 運行 R 腳本。 Rscript train.R與 Jupyter Notebook 位於同一文件夾中。 工作目錄設置為該文件夾。

import subprocess
try:
    subprocess.check_call(['Rscript', 'train.R'], shell=False)
except subprocess.CalledProcessError as e:
    print(e.output)
    print(e.returncode)
    print(e)
    print(e.stderr)

我收到一個 CalledProcessError:

None
1
Command '['Rscript', 'train.R']' returned non-zero exit status 1
None

我嘗試設置參數shell=True並嘗試設置參數cwd=os.path.dirname(os.path.realpath("train.R"))如此處所述

如果我在文件夾中打開控制台,命令Rscript train.R就可以正常工作。

我究竟做錯了什么?

我建議你改用Popen

import subprocess
try:
    pro = subprocess.Popen(['Rscript', 'train.R'], shell=False)

    stdout, stderr = pro.communicate()

    print(stdout)
    print(stderr)

有了這個,您應該能夠從子流程中獲取錯誤或輸出值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM