Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python subprocess.check_输出显然未捕获输出_Python_Windows - Fatal编程技术网

Python subprocess.check_输出显然未捕获输出

Python subprocess.check_输出显然未捕获输出,python,windows,Python,Windows,我正在运行一个简单的python脚本,如下所示: C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe -c "print 'hello world'" hello world subprocess.check_output(["python", "-c", "print 'hello'"]) 当我试图从subproc

我正在运行一个简单的python脚本,如下所示:

C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe -c "print 'hello world'"
hello world
 subprocess.check_output(["python", "-c", "print 'hello'"])
当我试图从subprocess.check\u poutput中运行完全相同的内容时,我什么也得不到:

C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> import sys
>>> args = [sys.executable, '-c', '"print(\'hello world\')"']
>>> subprocess.check_output(args).strip()
''
这也会产生完全相同类型的故障:

subprocess.check_output(args, stderr=subprocess.STDOUT,).strip()
''
有人能看出哪里出了问题吗


这是Windows 7上的32位Python 2.7。

我认为您必须这样编写:

C:\workspace\MetaPackager\src\metapackager_tests\fake_project\src>c:\workspace\MetaPackager\Scripts\python.exe -c "print 'hello world'"
hello world
 subprocess.check_output(["python", "-c", "print 'hello'"])

下面是
子流程的详细信息。请检查输出

引用过多,这会起作用:

    subprocess.check_output([sys.executable, '-c', '__import__("sys").stdout.write(\'Hello\')'], stderr=subprocess.STDOUT)

试试看:
args=[sys.executable'-c',“print(\'hello world\')]
或者干脆
args=[sys.executable'-c',“print”('hello world')]
——这两种方法都适合我。