алгоритм визуализации строки Bresenham получил меня заинтересованный графическим рендерингом в реальном времени. Это может использоваться для рендеринга заполненных полигонов, как треугольники, для вещей как 3D образцовый рендеринг.
Эти пробелы могут действительно беспокоить :-(. Попробуйте os.chdir ('C: / Documents \ and \ Settings /')
, за которыми следуют относительные пути для os.system
, методы подпроцесса
или что-то в этом роде ...
Если попытки максимальных усилий обойти препятствие, связанное с пробелами в пути, продолжают терпеть неудачу, то мое следующее лучшее предложение - избегать пробелов на ваших жизненных путях. Не могли бы вы создать каталог без пробелов, скопировать туда важный файл .exe
и попробовать , тот ? Это разрушительное пространство абсолютно необходимо для вашего благополучия ...?
Это правильное использование, но, возможно, пробелы в имени пути по какой-то причине мешают работе.
Вы можете хотите запустить программу и под cmd.exe, чтобы вы могли видеть любой вывод flow.exe, который может указывать на ошибку.
Если бы это был я, я бы поместил 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, но должен дать представление. Вполне возможно, что сообщение об ошибке находится в потоке ошибок.
Это попытка выполнить C: \ Documents
с аргументами "и", "Настройки / flow_model / flow.exe"
?
Также вы можете рассмотреть subprocess.call ()
.
Вы используете правильно. Готов поспорить, что ваша внешняя программа 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"')
(Остерегайтесь двойных кавычек внутри одинарных кавычек. ..)
Я бы попробовал вставить 'r' перед вашим путем, если бы я был вами, чтобы указать, что это необработанная строка - и тогда вам не придется использовать косую черту. Например:
os.system(r"C:\Documents and Settings\flow_model\flow.exe")
Попробуйте
import subprocess
subprocess.call(["C:/Documents and Settings/flow_model/flow.exe"])