BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Installieren von Modulen in python

Alles zur Programmierung im LibreOffice.
Antworten
scientific
Beiträge: 131
Registriert: Do 25. Apr 2013, 17:27

Installieren von Modulen in python

Beitrag von scientific » Fr 26. Feb 2016, 12:32

Hi Leute!

Wie macht man das in Libreoffice richtig, dass man zusätzliche Module installiert.
Was ich bisher herausgefunden habe, bringt LO Python 3.3 selbst mit. Ich benötige für mein Skript icalendar und pytz. Diese beiden Module sind aber darin nicht enthalten.
Unter Linux konnte ich mit pip diese beiden Module in der "System-Umgebung" installieren und in LO nutzen. Unter Windows funktioniert das nicht. Ich habe manuell Python 3.5 am Rechner installiert. Dort konnte ich auch icalendar und pytz mit pip installieren. Aber in Libreoffice wird bei der Ausführung bemängelt, dass diese Module nicht vorhanden sind.

Gefunden hab ich das http://www.openoffice.org/udk/python/py ... #replacing, aber das ist für eine etwas ältere OOO-Version... und ich kommt damit nicht klar.
Sonst habe ich auch mit stundenlangem Googlen nichts weiter brauchbares gefunden.

Was ich noch ergänzen möchte:

Ich habe mir https://bootstrap.pypa.io/ez_setup.py herunter geladen. Und das Installations-ZIP-File von icalendar https://github.com/collective/icalendar

Dann habe ich auf der Kommandozeile als Administrator auf Win7 folgendes ausgeführt:
1) Wechseln ins Verzeichnis, wo das Bootstrap-File von ez_setup.py liegt.
2) auf cmd.com:

Code: Alles auswählen

C:\Program Files (x86)\LibreOffice 5\program\python.exe ez_setup.py install
Das installiert easy_setup in der Umgebung von Python in Libreoffice.
3) Im entpackten Verzeichnis von icalendar:

Code: Alles auswählen

C:\Program Files (x86)\LibreOffice 5\program\python.exe setup.py
Das installiert icalendar und als Abhängigkeit pytz

Tatsächlich befinden sich dann in C:\Program Files (x86)\LibreOffice 5\program\python-core-3.3.0\lib\site-packages die entsprechenden Unterverzeichnisse mit den Modulen (das Verzeichnis war zuvor leer!!)

Ein Test

Code: Alles auswählen

C:\Program Files (x86)\LibreOffice 5\program\python.exe
zeigt mir dann auch die Version 3.3.5 und nicht die separat installierte 3.5 an.
weiters auf der Python-Konsole getestet:
import icalendar
import pytz
klappt. ich kann auf die Module zugreifen und sie wie in meinem Skript gewollt verwenden.

Führe ich dann aber mein Skript von LO aus aufgerufen aus, kommt wieder die Fehlermeldung, dass icalendar nicht gefunden wird.
Für mich sieht das jetzt so aus, als ob da irgendwelche Pfade nicht gefunden werden. Aber wo gebe ich die bekannt?

Hat jemand eine Idee?

lg scientific

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: Installieren von Modulen in python

Beitrag von karolus » Fr 26. Feb 2016, 23:39

Hallo

Das Installieren von third-partie- modulen (kann) beliebig kompliziert werden.

linux (debian-basiert und rpm-basierte )
  • Benutze die LO-version von deiner Distribution, damit bist du auf der einfachen und sicheren Seite, weil dann LO mit dem Python-Interpreter der Distri arbeitet.
    Zum Nachinstalieren von third-partie-packages brauchst du dann nur:

    Code: Alles auswählen

    pip3 install  .... --user
    bzw bei Sachen mit eigenen C-abhängigkeiten, und wenn du nicht unbedingt die Compilier-sachen für python haben möchtest, solltest du zunächst die Paketverwaltung deiner Distribution befragen ob das gewünschte nicht dort schon zu haben ist
Windows
  • ...dazu kann ich nur ein paar allgemeine Tipps geben ohne Gewähr...
    -- intalliere dir aufs System eine Python-version passend zu der die LO benutzt..
    ? momentan dürfte das für LO5.1 ... python3.5.x sein ?? -- stimmt das so?
    installiere dir dazu auch pip ( via setuptools ??? )
    installiere third-party-dinge dann ebenfalls mit:
    pip install .... --user

Generell:
  • in einfachen Fällen bei puren python-modulen ohne irgendwelche Abhänigkeiten zu anderen third-party-Dingen
    funktioniert die "Installation" idR. schon per kopieren in den entsprechenden `site-packages`-Ordner.
    In diesen Fällen ist vieles auch noch kompatibel zwischen verschiedenen python-versionen von 2.7 bis 3.x
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

scientific
Beiträge: 131
Registriert: Do 25. Apr 2013, 17:27

Re: Installieren von Modulen in python

Beitrag von scientific » Mo 29. Feb 2016, 10:29

In Linux funktioniert es eh (auch mit Python 3.5).
Windows ist mein Problemkind.

LO bringt Python 3.3 mit.
Und zwar ist im Libreoffice-Verzeichnis ein Ordner "python-core-3.3.0" und "python-core-3.3.3"

Es gelang mir ja auch, wie ich schon schrieb, mittels setuptools pip in diesen Verzeichnissen zu installieren, und auch icalendar und pytz. Die Verzeichnisse sind in "C:\Program Files (x86)\LibreOffice 5\program\python-core-3.3.0\lib\site-packages" auch vorhanden.
Wenn ich dieses Python 3.3 auf der Cmd.exe mit C:\Program Files (x86)\LibreOffice 5\program\python.exe aufrufe und icalendar bzw. pytz lade und damit aktionen ausführe, dann funktioniert das auch.

Nur über den Aufruf aus LO geht es nicht... Da bekomme ich die Fehlermeldung, dass modul icalendar nicht gefunden wird und deshalb nicht importiert werden kann.

scientific
Beiträge: 131
Registriert: Do 25. Apr 2013, 17:27

Re: Installieren von Modulen in python

Beitrag von scientific » Mo 29. Feb 2016, 11:29

So, jetzt hab ich Python 3.3.3 auf meinem Win7 installiert und mittels

Code: Alles auswählen

c:\python33\python.exe get_pip.py
, welches ich mir von hier heruntergeladen habe https://bootstrap.pypa.io/get-pip.py pip installiert.

dann gings mit

Code: Alles auswählen

c:\python33\Scripts\pip3.3.exe install icalendar --user
.

Jetzt wird icalendar und pytz (ist eine Abhängigkeit von icalendar) auch im Aufruf aus LO erkannt und verwendet.

Wie ist das eigentlich... Python 3.3 ist ja veraltet... Warum ist in LO diese veraltete Version enthalten? Was ist mir den Sicherheitslücken?

lg scientific

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: Installieren von Modulen in python

Beitrag von karolus » Mo 29. Feb 2016, 13:29

Hallo

python3.3 ist nicht veraltet, und wird wohl noch eine längere Zeit mit neuen Mikrorelease ( 3.3.x ) -paketen versorgt

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

scientific
Beiträge: 131
Registriert: Do 25. Apr 2013, 17:27

Re: Installieren von Modulen in python

Beitrag von scientific » Mi 2. Mär 2016, 12:11

Vielen Dank für die Info.

Das Ganze funktioniert mittlerweile auf Windows nur so halb.

Weiter gehts hier http://www.libreoffice-forum.de/viewtop ... 12&t=16049

lg scientific

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten