LO und sein Python. Wo ist es hin, wo kommt es her?

Hallo,
ich möchte (hauptsächlich) für Calc kleinere Python Makros nutzen. Zu deren Entwicklung verwende ich PyCharm unter Linux (Opensuse Leap).

Ich glaube mich daran zu erinnern, dass LO mit seinem eigenen Python-Interpreter daher kommt. Damit PyCharm dieselbe Umgebung sieht wie LO, so muss man, laut Wiki, in den Einstellungen der IDE den entsprechenden Interpreter auswählen. Laut Wiki wäre das für Windows so was wie

C:\Programme\Libreoffice\program\python.exe
und daraus abgeleitet für Linux
/usr/lib64/libreoffice/program/python

Letzteres gibt es aber nicht. Nutzt LO unter Linux im Gegensatz zu Windows die Systemversion von Python?

Lese ich die Pythonversion in einem Makro aus, so erhalte ich 3.6.15 (default, Sep 23 2021, 15:41:43) [GCC] und das ist die Systemversion von Leap.

Ist das so beabsichtigt? Da die 3.6 schon etwas älter ist, habe ich parallel noch 3.12 installiert. Aber wie bringe ich es LO bei, die 3.12 zu verwenden, anstatt die 3.6?

Joachim

Hallo

Es ist… ähem … kompliziert :wink:

In der Regel verteilen die Linux-distributionen »eigene« LO-pakete die gegen die python-Version des BS gelinkt sind. ( du findest die unter /usr/lib…/libreoffice/ ) in diesem Fall werden nur »uno.py« und »unohelper.py« im pfad »/usr/lib/python3/dist-packages/…« gespeichert. Damit python auch die LO-spezifischen Scripte und Binarys findet wird »uno.py« modifiziert mit den Kopfzeilen:

import sys, os
sys.path.append('/usr/lib/libreoffice/program')
os.putenv('URE_BOOTSTRAP', 'vnd.sun.star.pathname:/usr/lib/libreoffice/program/fundamentalrc')

Falls du LO selbst von LO-download herunterlädst und manuell installierst werden diese unter »/opt/…« installiert und bringen ihre »eigene« python-Umgebung mit.

Das irritiert mich jetzt, selbst ein eher konservatives Debian12-Bookworm hat schon seit knapp zwei Jahren python3.11… dabei!

Gibts da bei SuSe keine Möglichkeit eines System-Upgrades?

–––––

Ps. nur der Vollständigkeit halber:
Es gibt für Linux auch noch »Container-pakete« via:

  • flatpak ( nehme ich hier nur weils für meine Hardware Raspberry ARM64 keine LO-pakete direkt von LO gibt, und ich gerne auch etwas aktuelleres als LO7.4.… von debian testen möchte )
  • snap urprünglich von den ubuntu-Kasperlen gepusht … ( hab ich getestet, für schlecht befunden und wieder komplett deinstalliert )

Yoah, da sagste was! Ich fiel auch fast vom Stuhl als ich 3.6 gelesen habe. Man kann höhere Versionen parallel installieren, was ich auch gemacht habe. Die alte 3.6 scheint aber tief im System verankert zu sein wie LO jetzt zeigt.

Dann mach ich mich mal auf, mein LO (immerhin ein 24.8.6.2) auf einen neueren Stand zu bringen. Mit der neuesten Version LO müsste allerdings (nur) ein 3.10 kommen, das zumindest ist bei der Windows-Variante der Fall. Oder ich baue es komplett selbst. Das macht aber bei Python wahrscheinlich keinen Unterschied.

Auch eine 3.10 ist nicht wirklich taufrisch :frowning:

Aber das allerneuste Gedöns werde ich wahrscheinlich auch nicht brauchen. Aber wer weiß, der Teufel steckt im Detail.

In einem Makro?? warum nicht schlicht im Terminal-emulator:

python

Weil ich zu dem Zeitpunkt sehen wollte, ob sich die Versionen unterscheiden. Einmal direkt auf der Konsole und einmal aus LO heraus. Ich hatte im Kopf, dass LO sein eigenes Python mitbringt. Das ist aber wohl nur bei Windows so.

Nein, siehe oben! Download von LO versus LO von der Linux-distribution.

Dazu vielleicht auch interessant für dich: wie starte ich »jupyter-notebook« aus einem flatpak-container

Ja, stimmt. Ich war mit meinen Gedanken gerade wo anders.