Вызов модуля Python от Perl

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

В чем лучший способ состоит в том, чтобы сделать разъем к этому модулю? Мои мысли:

  1. Обеспечьте технические возможности как утилиты командной строки и сделайте system вызовы
  2. Создайте своего рода сервер и обработайте вызовы RPC (скажите через RPC JSON),

Кто-либо советует?

8
задан Escualo 9 August 2010 в 15:50
поделиться

3 ответа

Еще один вариант - встроить Python непосредственно в сценарий Perl, используя Inline::Python.

Это может быть проще, чем другие решения, и требует только одного дополнительного модуля.

19
ответ дан 5 December 2019 в 05:25
поделиться

Предоставляет функции в виде утилит командной строки и выполняет системные вызовы

Работает очень хорошо. Именно так и предназначены для использования такие программы, как Python (и Perl).

3
ответ дан 5 December 2019 в 05:25
поделиться

В краткосрочной перспективе самым простым решением является использование Inline :: Python. Затем следует вызов сценария командной строки.

В конечном итоге использование сервера для обеспечения функциональности RPC или простой вызов сценария командной строки даст вам наиболее перспективное решение.

Почему?

Таким образом, вы не привязаны к Perl или Python как к языку, используемому для построения систем, использующих сервисы, предоставляемые вашей библиотекой. Любой из этих методов создает понятный, не зависящий от языка интерфейс, который можно использовать в любой среде разработки, которую вы выберете.

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

Я бы хотел задать пару вопросов:

Как часто вы меняете инструменты разработки. Вы перешли на Python с Perl.Вы начали с Tcl и перешли на Perl? Собираетесь ли вы перейти на новый захватывающий язык X через 1, 5 или 10 лет? Если вы меняете инструменты «часто» (что бы это ни значило), подчеркните совместимость инструментов.

Насколько быстро достаточно быстро? Нормально ли время запуска для решений командной строки? Не слишком ли сильно тормозит Inline :: Python (вы все еще инициализируете интерпретатор Python, он просто встроен в ваш интерпретатор Perl)?

Основываясь на ответах на эти вопросы, я бы сделал самое простое, а именно: скорее всего сработает .

Я предполагаю, что это означает по порядку:

  1. Inline :: Python
  2. Сценарии командной строки
  3. Создание сервера RPC
9
ответ дан 5 December 2019 в 05:25
поделиться