запустив Popen на Mac, он открывает новый терминал с моей программой и больше ничего не делает, несмотря на то, что я даю скрипт с командами - PullRequest
0 голосов
/ 17 апреля 2019

Итак, я пишу программу, которая создает Input для другой программы, а затем будет что-то делать с Output, который создает другая программа.

Теперь я хочу использовать Popen, чтобы открыть эту программу и запустить скрипт с этой программой. У меня уже есть версия, которая работает на Windows, но я хочу выполнить это также на Mac, и там начинается проблема.

На Mac он только запускает терминал с нужной программой, но больше ничего не делает. Там нет сообщения об ошибке, и я не знаю, что мне нужно изменить в моей команде, поэтому она действительно что-то делает, а не просто открывает терминал с программой и игнорирует мой скрипт.

# This function calls polymake to execute a script with two input parameters

    console_object = subprocess.Popen(['/Applications/polymake.app/Contents/MacOS/polymake', '--script', script_filename, vertex_filename, poly_filename], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
    stdout, stderr = console_object.communicate()
    if stderr != None:
        print(stderr)
        raise SystemExit(1) # One should not do this in a function
    if stdout != None:
        string = str(stdout).replace('\\n', '\n')[1:]
        if equalities:
            string = string.replace(">=", "=")
        print(string)
        if equalities:
            file = open(console_filename, 'a')
        else:
            file = open(console_filename, 'w')
        file.write(string[1:-1])
        file.close()
        print("\nThis output was written into %s" % console_filename)
...