Mit pyuno mit meinem vorhandenen python-installation
Ich versuche, PyUNO als eine Methode zum konvertieren von verschiedenen Dokument-Formate (doc, wordperfect, html, etc) in PDF von meinem Django-server. Ich habe einen Teufel eine Zeit immer import uno
zu arbeiten. Es scheint zu scheitern, wenn dabei import pyuno
, mit einer Nachricht von ImportError: DLL Load Failed: The specified module could not be found
.
Nur so kann ich diese zu arbeiten, ist die Verwendung der Python-2.6, kam mit OpenOffice, aber ich möchte wirklich, um meine anderen 2.6 installation. Die docs für die PyUNO sind alle für Python 2.2 und angeblich out-of-date.
Ich vermute, dass einige (oder alle) der folgenden Dateien müssen kopiert werden aus der OpenOffice-Verzeichnis meiner site-packages-Verzeichnis (oder einem Unterverzeichnis davon):
pythonloader.py
pythonloader.uno.ull
pythonloader.uno.ini
pythonscript.py
pyuno.pyd
Hat jemand hatte keinen Erfolg, immer diese zu arbeiten?
Dies ist auf Windows.
- nach oooforum.org/forum/viewtopic.phtml?t=4818 , die Nutzung der PyUNO-Bibliothek erfordert die Verwendung von Python kommt mit OOo, weil Sie verknüpft sind mit verschiedenen stdlibs. 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach nur Konvertierungen, Sie müssen nicht das Rad neu erfinden. Blick auf unoconv: http://dag.wieers.com/home-made/unoconv/
"Import uno" wird automatisch funktionieren, WENN der python-interpreter gebündelt wurde mit OpenOffice, oder in einigen Linux-Systemen, wo die Verpacker getan haben eine Menge Arbeit für Sie bereits.
Alternative 1: Für andere Python-Installationen auf Win32-Systemen, die Sie importieren müssen Sie drei Umgebungsvariablen, und fügen Sie ein Element zu Ihrem Pythonpath. Die detaillierte Anleitung ist bei http://user.services.openoffice.org/en/forum/viewtopic.php?f=45&t=36370&p=166783
Den drei Umgebungsvariablen Sie müssen sich VON Ihrem OO-installiert-Python und fügen Sie Ihre anderen installieren von Python sind:
(Mit Python 2.6 und OO 3.1.2)
Den pythonpath Element, das Sie hinzufügen müssen, UM Ihre anderen installieren von Python ist die Lage des uno-Modul:
Jetzt können Sie einfach "import uno'.
Pyuno ist nur kompatibel mit einer ähnlichen version von Python. Da OO 3.1 bundles Python 2.6.1, dass pyuno ist nur kompatibel mit anderen Python 2.6. Der Versuch zu importieren uno in einer anderen version von Python wird führen zu einem Laufzeitfehler. Aber es gibt einen Weg etwa, dass in Alternative 2.
Alternative 2: Für andere Python-Installationen auf WIN32-Systemen, können Sie Sie ignorieren die Python-UNO-Brücke vollständig und verwenden Sie die Python-COM-Brücke statt. Sie müssen installieren Sie ein neues Modul, und die API hat ein paar Unterschiede, aber Sie können JEDE version von Python, darunter Python ist3.
Ich brauche auch eine Antwort auf diese Frage. Ich verwende windows XP und habe ein system, wo ich extrahieren von Daten aus einer SQL server DB und fügen es in die Vorlage ein excel-Dateien. Ich will NICHT hinzufügen, Makros usw., um die OpenOffice. aber ich möchte, um den service zu nutzen, um diese zu produzieren-Dateien.
Jedoch die einzige Art, wie ich scheinen in der Lage zu importieren die uno modude ist die Verwendung der python.exe von der openoffice-Verzeichnis. selbst dann kann ich nicht zuordnen dieser exec mit den py-Dateien in mein system für einige Grund, damit ich in den vollen Pfad-Namen, jedes mal.
Weiß ich, dass in Linux, die Pyuno-Modul ist ein addon und kann verwendet werden, im normalen python, aber in windows scheint dies nicht der Fall sein. Ich habe alle relevanten Pfadangaben aus der python-exec unter openoffice und dupliziert Sie in python 2.7, aber pyuno noch immer nicht mit nicht in der Lage zu finden, DDL-ohne Bezug zu dem, was DDL.
Ich denke, die Antwort ist "das ist nicht möglich." Von anderen lese im web, es scheint, dass die stdlib verwendet, um Compiler - /link-das python-Programm python.org unterscheidet sich von der stdlib verwendet, um Compiler - /link-die python.exe verteilte mit OpenOffice.org. Ich weiß nicht, warum, und ich bin immer noch verwirrt von der Tatsache, dass die beiden pythons geben Sie mir die gleiche startup-Meldungen. So konnte ich völlig auf der falschen Spur hier.