2009-06-15 18 views
7

W domu, w Linuksie, eksperymentowałem z pyUNO, by kontrolować OpenOffice.org za pomocą Pythona. Używałem Pythona 2.6. Wszystko wydaje się dobrze działać.Tworzenie OpenOffice.org z pyUno ​​dla Windows-które Python?

Teraz pomyślałem, że wypróbuję jeden z moich skryptów (run a graphical diff for ODF doc) w systemie Windows. Ale gdy próbowałem go uruchomić, mam:

ImportError: No module named uno 

Według udk: Python UNO Bridge i OpenOffice.org Running Python on Windows, muszę uruchomić Pythona interpretter który jest instalowany z OpenOffice.org.

Pytanie 1: Czy Python 2.6 jest dostępny dla OpenOffice.org?

Jednak tym tłumaczem jest Python 2.3, który się starzeje! a mój skrypt używa funkcji nieobsługiwanej przez moduł 2.3 (subprocess).

Q2: Czy programowanie pyUNO w systemie Windows można wykonać za pomocą dodatku pyUNO do standardowej dystrybucji w języku Python, a nie w języku Python dołączonym do OpenOffice.org?

W moich dotychczasowych poszukiwaniach nie mogłem znaleźć żadnego wskazania, że ​​istnieje moduł pyuno dostępny do zainstalowania w standardowej dystrybucji Pythona Windows ... co jest niespodzianką, ponieważ na Ubuntu Linux, UNO jest obsługiwany w porządku w Pythonie tylko przez:

apt-get install python-uno 

Innym problemem jest to: co zrobić, jeśli chcę, aby program, który wykorzystuje zarówno pyUNO i innych bibliotek 3rd party? Nie mogę zainstalować pyUNO w mojej instalacji Pythona w systemie Windows, więc czy jestem zmuszony jakoś zainstalować moje inne biblioteki innych firm w pakiecie Python OpenOffice.org? Utrudnia to tworzenie większych, bardziej w pełni funkcjonalnych programów.

Czy brakuje mi czegoś, czy też utknęliśmy w tej sytuacji?

Odpowiedz

3

Możesz importować Uno do Pythona twojego systemu na systemach Win32. (Jeszcze nie Python 3). Samouczek pod http://user.services.openoffice.org/en/forum/viewtopic.php?f=45&t=36370&p=166783 To nie jest trudne - zaimportuj trzy zmienne środowiskowe i dołącz jeden element do swojej pythonpath.

Dla dodatkowej elastyczności można użyć mostu COM-UNO zamiast mostka Python-UNO. Składnia jest ogólnie dość podobna i można użyć dowolnej wersji Pythona (w tym Python3). Informacje pod adresem http://user.services.openoffice.org/en/forum/viewtopic.php?f=45&t=36608&p=167909

5

Per openoffice's docs, obsługiwana wersja Pythona jest DOWODOWANA z tyłu - "Wysiłki przy przenoszeniu PyUNO do Pythona 2.5 kontynuują", 2.6 nawet na mapie. Więc "utknąć z tej sytuacji na razie" jest rzetelna ocena! -)

4

OpenOffice.org 3.1 pochodzi z Python 2.6.1. (Jak pamiętam, było to połączenie w ostatniej chwili, które odstrasza niektórych ludzi, ale jest i działa.) Teraz doktorzy są jedyną rzeczą beznadziejnie nieaktualną. :)