def __init__(self): self.process = QProcess() self.process.error[QProcess.ProcessError].connect( self.error_management) self.env = QProcessEnvironment().systemEnvironment() self.set_otb_process_env_default() self.command = ""
def __main_execution(self): """Execute the project.""" self.output.setCurrentCharFormat(self.output.plain_format) message = '' if self.__preScriptExecuted: self.__preScriptExecuted = False message = self.tr( "Pre Execution Script Successfully executed.\n\n") self.output.setPlainText(message + 'Running: %s (%s)\n\n' % (self.fileName, time.ctime())) self.output.moveCursor(QTextCursor.Down) self.output.moveCursor(QTextCursor.Down) self.output.moveCursor(QTextCursor.Down) if not self.pythonExec: self.pythonExec = settings.PYTHON_EXEC #change the working directory to the fileName dir file_directory = file_manager.get_folder(self.fileName) self._proc.setWorkingDirectory(file_directory) #force python to unbuffer stdin and stdout options = ['-u'] + settings.EXECUTION_OPTIONS.split() self.currentProcess = self._proc env = QProcessEnvironment() system_environemnt = self._proc.systemEnvironment() for e in system_environemnt: key, value = e.split('=', 1) env.insert(key, value) if self.PYTHONPATH: envpaths = [path for path in self.PYTHONPATH.splitlines()] for path in envpaths: env.insert('PYTHONPATH', path) env.insert('PYTHONIOENCODING', 'utf-8') env.insert('PYTHONPATH', ':'.join(sys.path)) self._proc.setProcessEnvironment(env) self._proc.start(self.pythonExec, options + [self.fileName] + [p.strip() for p in self.programParams.split(',') if p])