Вчера я написал и запустил python script
, который выполняет shell
с помощью subprocess.Popen(command.split())
, где команда - это строка, которая составляет .sh
script и ее аргумент. Этот script работал до вчерашнего дня. Сегодня я запускал тот же script, и теперь я постоянно ударяю эту ошибку.
p=subprocess.Popen(shell_command.split())
File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
raise child_exception
OSError: [Errno 8] Exec format error
Я знаю, что есть похожие вопросы, которые были заданы до этого, но в моем случае я пробовал все, что не решает мою цель. Использование shell=True
не работает, потому что моя оболочка script вызывает другую оболочку script, перед которой необходимо установить некоторую среду для запуска этого script. Я сильно застрял в этом. Я просто перезагружаю систему один раз. Я использую ubuntu 12.04
EDIT:
import subprocess
import os
import sys
arg1=sys.argv[1]
arg2=sys.argve[2]
shell_command = 'my_path/my_shell.sh ' + arg1 + ' '+ arg2
P = subprocess.Popen(shell_command.split())
P.wait()
my_shell.sh:
arg1=$1
arg2=$2
cd $TOP
setup the environment and run shell script
build the kernel ...
execute shell command .....