python subprocess.calledProcessError

时间:2016-05-26 16:47:06

标签: python-2.7 subprocess

我正在尝试使用python子进程类顺序调用一系列命令,这将创建一个openCV virtualenv,然后调用我的python脚本(需要在cv virtualenv中运行)

到目前为止,我的代码(在stackoverflow的很多人的帮助下)是:

import sys
import os
from subprocess import check_call, STDOUT

DEVNULL = open(os.devnull,'r+b',0)

with open('log', 'wb', 0) as file:
check_call("""set -e -x
{python} -mpip install --user virtualenv virtualenvwrapper
rm -rf ~/.cache/pip
export WORKON_HOME=$HOME/.virtualenvs
source ~/.local/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv cv
cd /home/douglas/Desktop/TestePython/Assets
{python} novo.py
""".format(python=sys.executable),shell=True,
     executable='/bin/bash',stdin=DEVNULL,
     stdout=file, stderr=STDOUT, close_fds=True)

这给了我这个错误:

Traceback (most recent call last):
File "programa.py", line 20, in <module>
stdout=file, stderr=STDOUT, close_fds=True)
File "/usr/lib/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command 'set -e -x
/usr/bin/python -mpip install --user virtualenv virtualenvwrapper
rm -rf ~/.cache/pip
export WORKON_HOME=$HOME/.virtualenvs
source ~/.local/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv cv
cd /home/douglas/Desktop/TestePython/Assets
/usr/bin/python novo.py
' returned non-zero exit status 1

在日志中我得到了

/bin/bash: line 4: /home/douglas/.local/bin/virtualenvwrapper.sh: 
No such file or directory

但文件存在。

主要目标是像在终端中那样执行所有命令,序列非常重要

0 个答案:

没有答案