Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

26 Октябрь 2020, 06:26 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Передача значений из Libreoffice в скрип на Python  (Прочитано 4594 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maksvlad
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Иркутск
Сообщений: 158


« Стартовое сообщение: 5 Июль 2016, 06:38 »

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

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

Сообщений: 2 547


WWW
« Ответ #1: 5 Июль 2016, 09:07 »

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

maksvlad
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Иркутск
Сообщений: 158


« Ответ #2: 5 Июль 2016, 09:28 »

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

Сообщений: 2 547


WWW
« Ответ #3: 7 Июль 2016, 22:34 »

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

Записан

maksvlad
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Иркутск
Сообщений: 158


« Ответ #4: 8 Июль 2016, 02:37 »

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

Сообщений: 2 547


WWW
« Ответ #5: 9 Июль 2016, 13:22 »

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

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

Записан

maksvlad
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Иркутск
Сообщений: 158


« Ответ #6: 10 Июль 2016, 19:36 »

Спасибо, попробую
Записан
Yakov
Администратор
**
Offline Offline

Сообщений: 2 547


WWW
« Ответ #7: 10 Июль 2016, 23:13 »

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

maksvlad
Форумчанин
***
Offline Offline

Пол: Мужской
Расположение: Иркутск
Сообщений: 158


« Ответ #8: 13 Июль 2016, 18:17 »

Взвесив 'за' и 'против', решил, что в работу запущу связку argparse + json.  менять версию Пайтона в ЛО в будущем приведет к дополнительной головной боли при каждой смене версии ЛО.
Проще использовать АООо 4, который идёт с Пайтоном 2. Но это не наш метод...
« Последнее редактирование: 13 Июль 2016, 18:19 от maksvlad » Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!