Выполнение внешней программы (исполняемый файл) в Python?

алгоритм визуализации строки Bresenham получил меня заинтересованный графическим рендерингом в реальном времени. Это может использоваться для рендеринга заполненных полигонов, как треугольники, для вещей как 3D образцовый рендеринг.

84
задан Peter Mortensen 3 June 2018 в 15:13
поделиться

7 ответов

Эти пробелы могут действительно беспокоить :-(. Попробуйте os.chdir ('C: / Documents \ and \ Settings /') , за которыми следуют относительные пути для os.system , методы подпроцесса или что-то в этом роде ...

Если попытки максимальных усилий обойти препятствие, связанное с пробелами в пути, продолжают терпеть неудачу, то мое следующее лучшее предложение - избегать пробелов на ваших жизненных путях. Не могли бы вы создать каталог без пробелов, скопировать туда важный файл .exe и попробовать , тот ? Это разрушительное пространство абсолютно необходимо для вашего благополучия ...?

а попробовать , что ? Это разрушительное пространство абсолютно необходимо для вашего благополучия ...?

а попробовать , что ? Это разрушительное пространство абсолютно необходимо для вашего благополучия ...?

40
ответ дан 24 November 2019 в 08:33
поделиться

Это правильное использование, но, возможно, пробелы в имени пути по какой-то причине мешают работе.

Вы можете хотите запустить программу и под cmd.exe, чтобы вы могли видеть любой вывод flow.exe, который может указывать на ошибку.

0
ответ дан 24 November 2019 в 08:33
поделиться

Если бы это был я, я бы поместил EXE-файл в корневой каталог (C :) и посмотрел, работает ли он так. Если это так, вероятно, это (уже упомянутые) пробелы в имени каталога. Если нет, это могут быть некоторые переменные среды.

Также попробуйте проверить свой stderr (используя более ранний ответ int3):

import subprocess
process = subprocess.Popen(["C:/Documents and Settings/flow_model/flow.exe"], \
                           stderr = subprocess.PIPE)
if process.stderr:
    print process.stderr.readlines()

Код может быть не совсем правильным, поскольку я обычно не использую Popen или Windows, но должен дать представление. Вполне возможно, что сообщение об ошибке находится в потоке ошибок.

1
ответ дан 24 November 2019 в 08:33
поделиться

Это попытка выполнить C: \ Documents с аргументами "и", "Настройки / flow_model / flow.exe" ?

Также вы можете рассмотреть subprocess.call () .

1
ответ дан 24 November 2019 в 08:33
поделиться

Вы используете правильно. Готов поспорить, что ваша внешняя программа flow.exe должна выполняться в ее каталоге, потому что она обращается к некоторым внешним файлам, хранящимся там.

Так что вы можете попробовать:

import sys, string, os, arcgisscripting
os.chdir('c:\\documents and settings\\flow_model')
os.system('"C:\\Documents and Settings\\flow_model\\flow.exe"')

(Остерегайтесь двойных кавычек внутри одинарных кавычек. ..)

20
ответ дан 24 November 2019 в 08:33
поделиться

Я бы попробовал вставить 'r' перед вашим путем, если бы я был вами, чтобы указать, что это необработанная строка - и тогда вам не придется использовать косую черту. Например:

os.system(r"C:\Documents and Settings\flow_model\flow.exe")
21
ответ дан 24 November 2019 в 08:33
поделиться

Попробуйте

import subprocess
subprocess.call(["C:/Documents and Settings/flow_model/flow.exe"])
3
ответ дан 24 November 2019 в 08:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: