Передача значений из Libreoffice в скрип на Python

Автор maksvlad, 5 июля 2016, 06:38

0 Пользователи и 1 гость просматривают эту тему.

maksvlad

Исходные данные:
     ЛО 5.1.3
     Python 3.5 (поставляется вместе с ЛО)
     Appy.pod (требует Python 2.7)
Действие:
     Запрос к базе данных формируется скриптом на Python в ЛО. Результаты запроса записываются в промежуточный файл, откуда они читаются скриптом, вызывающим Appy.pod.
Задача:
     Как избавиться от промежуточного файла?

P.S.
Вариант с аргументами запуска скрипта (а-ля argparse) уже отброшен

Yakov

Сконфигурировать LO на использование Python 2.7?
ОС какая?

maksvlad

А подробней, как сконфигурировать?
Из того, что я нашел, все требовало пересборки
Поэтому и начал лепить костыли из subprocess и т.д.
ОС: Linux (Ubuntu 14.04), WinXP, WIN7

Yakov

Делал это на  ALT Linux. Версии LO для Linux обычно сконфигурированы на использование системного Python.
Так что через средства дистрибутива ALT (system alternatives или просто отредактировал символическую ссылку) настроил предпочтительную версию Python (в системе можно было установить сразу и 2 и 3 версию Python)


maksvlad

Использую ЛО не из репы убунты, а с либреоффис.орг. Версия питона в системе 3.4.2. ЛО выдаёт версию 3.5. Следовательно, это используется не системная.
Допустим, что под линуксом вопрос решается линковкой. А под вынь как быть?

Yakov

Взять Python из предыдущей версии LO/AOO (в которой был необходимый Python), и прописать к нему путь в
LO_folder/program/pythonloader.uno.ini.

Самое интересное, состав модулей Python отличается у аналогичных версий из состава LO и AOO.


maksvlad


Yakov

Ещё может потребоваться замена  pythonloader.uno.dll
(это было необходимо для LO 3.3.0)
http://forumooo.ru/index.php/topic,1052.msg9745.html#msg9745

maksvlad

#8
Взвесив 'за' и 'против', решил, что в работу запущу связку argparse + json.  менять версию Пайтона в ЛО в будущем приведет к дополнительной головной боли при каждой смене версии ЛО.
Проще использовать АООо 4, который идёт с Пайтоном 2. Но это не наш метод...