首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Subprocess使用Python运行,但在使用R和Retic所得时不起作用

Subprocess使用Python运行,但在使用R和Retic所得时不起作用
EN

Stack Overflow用户
提问于 2020-07-21 14:09:54
回答 1查看 290关注 0票数 0

我有一个命令保存在一个文本文件中,我希望使用subprocess.run()从R中使用reticulate包执行该命令。

我有一个有三个文件的目录:

  • test_command.txt,它包含命令touch foo.txt

  • run_command.py:

代码语言:javascript
复制
import subprocess
import os

subprocess.check_output('bash test_command.txt')
print(os.path.isfile("foo.txt"))  # Check if the command was actually executed properly

  • run_from_r.R:

代码语言:javascript
复制
library(reticulate)
use_condaenv("my_env")  # Same conda environment as used for python
source_python("run_command.py")

当我直接运行run_command.py时,会创建foo.txt,并返回True

然而,当我使用run_from_r.R从R运行时,我得到以下消息:

代码语言:javascript
复制
Error in py_run_file_impl(file, local, convert) : 
  OSError: [WinError 6] The handle is invalid

Detailed traceback: 
  File "<string>", line 5, in <module>
  File "C:\Users\Danie\miniconda3\envs\wildcats_summer_env\lib\subprocess.py", line 411, in check_output
    **kwargs).stdout
  File "C:\Users\Danie\miniconda3\envs\wildcats_summer_env\lib\subprocess.py", line 488, in run
    with Popen(*popenargs, **kwargs) as process:
  File "C:\Users\Danie\miniconda3\envs\wildcats_summer_env\lib\subprocess.py", line 753, in __init__
    errread, errwrite) = self._get_handles(stdin, stdout, stderr)
  File "C:\Users\Danie\miniconda3\envs\wildcats_summer_env\lib\subprocess.py", line 1054, in _get_handles
    p2cread = _winapi.GetStdHandle(_winapi.STD_INPUT_HANDLE)

system("bash test_command.txt")在R.

是否知道此错误消息意味着什么,以及如何在使用subprocess.check_output/runreticulate运行时使该命令正确运行?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-07-21 14:36:05

我似乎通过以下方法修复了它:

代码语言:javascript
复制
subprocess.run(['bash', 'test_command.txt'], stdout=subprocess.PIPE,
               stderr=subprocess.STDOUT, stdin=subprocess.DEVNULL)

来自Python running as Windows Service: OSError: [WinError 6] The handle is invalid

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63016429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档