вызывать удаленные программы по URL с помощью python - PullRequest
0 голосов
/ 18 октября 2010

Я разрабатываю графический интерфейс на python с фреймворком wxPython для запуска нескольких программ подпроцесса. Теперь я могу сделать это для локальных файлов, например, если у нас есть скомпилированный файл .out по пути "/AAA/BBB/xxx.out", я мог бы поступить с такой командой:

subprocess.Popen("/AAA/BBB/xxx.out", stdout=subprocess.PIPE)

Теперь я думаю о разработке следующих двух связанных с URL удаленных функций, по-прежнему называющих их подпроцессами (поскольку основным процессом является GUI) , но я не знаю, как это сделать питон.

1) как запустить программу, учитывая URL файла .out? например учитывая http://www.ABC.com/xxx.out

2) как запустить программу, учитывая URL исходного кода этого файла .out (например, http://www.ABC.com/xxx/src/ содержит исходный код C ++ и make-файл программы)

какой тип модуля python можно использовать и какие потенциальные проблемы могут возникнуть? Каков правильный способ реализации этих двух функций?

Большое спасибо за любые предложения или примеры кода (это будет очень полезно) !!

Ответы [ 2 ]

0 голосов
/ 18 октября 2010

Ваш вопрос состоит из двух отдельных частей: как получить файл с удаленного URL-адреса и как его выполнить.

Кажется, у вас есть первая часть, так что просто посмотрите, как загружать файлы с помощью Python. Вы также можете использовать уже существующий загрузчик файлов для этой задачи (у вас уже есть часть выполняющихся подпроцессов) или, что еще лучше, существующий модуль Python.

Теперь, учитывая URL исходного кода, ... исходный код чего? Я имею в виду, что если это Python, вы можете запустить его в интерпретаторе, но вам может понадобиться скомпилировать исходный код на других языках, что может иметь зависимости и другие сложности.

0 голосов
/ 18 октября 2010

Для загрузки этого онлайн-файла в качестве подпроцесса из вашей программы вам нужно будет загрузить его для временного расположения. Просто используйте модуль urllib2 для загрузки файла вместе с http://docs.python.org/library/tempfile.html, чтобы создать для него временный заполнитель. Они могут выполнить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...