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

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

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

Войти
Новости: Доступно и просто о работе в офисных пакетах
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: 'module' object has no attribute 'getComponentContext'  (Прочитано 400 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Al_Ex
Новичок
*
Offline Offline

Сообщений: 30


« Стартовое сообщение: 16 Май 2017, 17:33 »

На рабочей машине Windows установлена версия Python27 + PyCharm + LibreOffice 5.3.
Инсталлировал PyUno, чтобы из скрипта вызывать LibreOffice.
Отсюда взял пример вызова http://www.openoffice.org/udk/python/python-bridge.html

Код:
import socket  # only needed on win32-OOo3.0.0
import uno

# get the uno component context from the PyUNO runtime
localContext = uno.getComponentContext()

# create the UnoUrlResolver
resolver = localContext.ServiceManager.createInstanceWithContext(
"com.sun.star.bridge.UnoUrlResolver", localContext )
...........................

При выполнении скрипта получаю ошибку:
Код:
C:\Python27\python.exe C:/Users/.../PycharmProjects/Script/Script.py
Traceback (most recent call last):
  File "C:/Users/.../PycharmProjects/Script/Script.py", line 5, in <module>
    localContext = uno.getComponentContext()
AttributeError: 'module' object has no attribute 'getComponentContext'

Process finished with exit code 1

Изменить версию Питона нет возможности, т.к. все скрипты нужно писать в 2.7.
Или проблема не в версии?
Записан
Yakov
Администратор
*
Offline Offline

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


WWW
« Ответ #1: 16 Май 2017, 20:55 »

А использовать Apache Open Office 4.1.3? (там как раз Python 2.7  для версии под Windows)
Записан

Al_Ex
Новичок
*
Offline Offline

Сообщений: 30


« Ответ #2: 17 Май 2017, 11:05 »

А использовать Apache Open Office 4.1.3? (там как раз Python 2.7  для версии под Windows)
Именно это я и использовал.
Может ли быть проблема в том, что Python установлен в корне диска C:\Python27, а Apache Open Office 4.1.3 установлен в C:\Program Files (x86). Или это не важно?
В PATH прописано C:\Python27\;C:\Python27\Scripts;
Как говорится по колесам стучал, капот открывал...
Записан
economist
Ветеран
*****
Offline Offline

Сообщений: 563


« Ответ #3: 17 Май 2017, 12:35 »

В своё время тоже помучился и сделал вывод что с PyUNO надежно можно работать
только "родным" Python, из папки самого OpenOffice|LibreOffice. Либо не использовать PyUNO.
Под виндой есть еще COM.

Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Al_Ex
Новичок
*
Offline Offline

Сообщений: 30


« Ответ #4: 17 Май 2017, 13:21 »

Изменил в PyCharm configuration for Script -> Python interpreter: Python 2.7.13 (C:\Program Flles (x86)\OpenOffice 4\programm\python.exe).
Теперь
Код:
import uno
ImportError: No module named uno
Где же uno? Видимо у меня мало опыта в этом, что же происходит?
Записан
Al_Ex
Новичок
*
Offline Offline

Сообщений: 30


« Ответ #5: 17 Май 2017, 13:46 »

Что интересно, попробовал на MacOS:
 
$ python --version
Python 2.7.13

$ pip install uno
Requirement already satisfied: uno in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Requirement already satisfied: py==1.4.22 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from uno)
Requirement already satisfied: pytest==2.6.0 in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages (from uno)

LibreOffice
Version: 5.3.2.2

Запускаю в PyCharm тот же стартовый скрипт и снова
Код:
ImportError: No module named uno
Записан
Al_Ex
Новичок
*
Offline Offline

Сообщений: 30


« Ответ #6: 19 Май 2017, 12:18 »

Мои успешные действия на MacOS были такие, может кому будет полезно:
На основе https://pypi.python.org/pypi/unotools
1. Установить последнюю версию приложения https://www.libreoffice.org/
2. Скачать unotools https://bitbucket.org/t2y/unotools/downloads/
3. Скачать singledispatch https://bitbucket.org/ambv/singledispatch/downloads/
4. Прописать путь export PYTHONPATH="/path/to/singledispatch/:/path/to/unotools/"
5. Т.к. на MacOS есть предустановленный по дефолту Python2.7, а в Libre свой Python3.5, то запускать нужно именно Питон из Либры, т.к. Унотулз работает только с Питоном версии выше 3.3. Запускать отсюда: /Applications/LibreOffice.app/Contents/Resources

Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

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