Tracer des graphes dans libreoffice base

Bonjour,
J’ ai besoin, pour une application de créer des graphes issues d’ une table LO Base. Je sais qu’ il existe une solution en transférant les données de la table dans Calc. Cette solution me parait lourde d’ autant que les paramètres du graphes sont à refaire à chaque fois, du moins suivant mes premiers essais.
Dans le but d’ automatiser au maximum la procédure, je pensai à une macro Python utilisant les modules Malplotlib et Numpy.
Je me dois de préciser que ces deux modules utilisés en dehors de libreoffice fonctionnent parfaitement.
Pour Matplotlib, pas de soucis, j’ ai réussi à l’ installer correctement puis à le recopier dans le dossier:
/opt/libreoffice7.1/program/python-core-3.8.8/lib/
Par contre, pour numpy, cela ne fonctionne pas. Lorsque je tape dansApso, import numpy, j’ obtiens le message suivant:
import numpy
Traceback (most recent call last):
File “”, line 1, in
File “/opt/libreoffice7.1/program/uno.py”, line 345, in _uno_import
return _builtin_import(name, *optargs, **kwargs)
File “/opt/libreoffice7.1/program/python-core-3.8.8/lib/numpy/init.py”, line 144, in
from . import core
File “/opt/libreoffice7.1/program/uno.py”, line 422, in _uno_import
raise uno_import_exc
File “/opt/libreoffice7.1/program/uno.py”, line 345, in _uno_import
return _builtin_import(name, *optargs, **kwargs)
File “/opt/libreoffice7.1/program/python-core-3.8.8/lib/numpy/core/init.py”, line 49, in
raise ImportError(msg)
ImportError:
IMPORTANT: PLEASE READ THIS FOR ADVICE ON HOW TO SOLVE THIS ISSUE!
Importing the numpy C-extensions failed. This error can happen for
many reasons, often due to issues with your setup or how NumPy was
installed.
We have compiled some common reasons and troubleshooting tips at:
Troubleshooting ImportError — NumPy v1.23.dev0 Manual
Please note and check the following:

  • The Python version is: Python3.8 from “/usr/bin/python3”
  • The NumPy version is: “1.22.0”
    and make sure that they are the versions you expect.
    Please carefully study the documentation linked above for further help.
    Original error was: No module named ‘numpy.core._multiarray_umath’ (or ‘numpy.core._multiarray_umath.add_docstring’ is unknown)
    (or ‘.core’ is unknown)
    Malgré une visite sur le site de numpy.org, c’ est toujours l’ impasse.
    Auriez-vous une idée pour solutionner ce genre de problème.
    Cordialement

Bonjour @ElCatala

Je ne suis pas dans le même environnement et n’ai que peu d’expérience dans ce domaine, mais en attendant une réponse mieux informée, ce que j’ai testé et qui fonctionne chez moi est d’ajouter le path :

>>> import sys
>>> sys.path.append("c:/users/pierre-yves/appdata/local/programs/python/python38/lib/site-packages")
>>> import numpy as np

Cordialement

Bonsoir,
Merci de votre aide. Le test chez moi n’ a pas fonctionné. J’ ai toujours le même message d’ erreur. C’ est un peu rageant car lorsque je lance le programme sur Idle, cela fonctionne. Je sais bien que le python embarqué dans LO n’ est pas totalement identique.
A suivre.
Bonne soirée

Bonsoir,
Actuellement sous LibreOffice 7.2.4, j’ avais réussi importer le module numpy en version 1.18.0. Je tentai d’ importer matplotlib mais une nouvelle erreur s’ est manifesté. Pas de module numpy.ma alors que je l’ ai bien retrouvé dans le repertoire de numpy. Puis, hier soir, patatras, mise à jour de Xubuntu et la, impossible d’ importer numpy?
Je ne vois pas le rapport?
Pierre-Yves, vous me dites que chez vous, l’ import de numpy dans libreoffice fonctionne. Pourriez vous me dire quelle version vous utilisée sachant que libreoffice utilise Python 3.8.10?
Par avance, merci de votre réponse

Bonjour

Python 3.8.9

Vérifie que tu n’as pas plusieurs dossiers python de versions différentes dans le dossier LibreOffice\program. J’ai rencontré ce problème suite à des install de LibreOfice sans désinstall préalable de version précédente. J’avais donc un dossier python-core-3.8.10 et python-core-3.8.9… J’ai tout désinstallé, supprimé ce qui restait, puis réinstallé.

Cordialement

Bonjour,
Suite à vos conseils, j’ ai donc tout revérifier. L’ ensemble de l’ installation (OS + LO) est sur la base de python3.8.10. Après vérification, Je n’ ai aucun autre dossier de versions différentes restant sur le PC et en tout autre point.
Sous Thonny, les programmes comportant les modules numpy et matplotlib fonctionnent parfaitement.
Lorsque je tente un import numpy as np avec la console APSO, j’ obtiens un message d’ erreur se terminant par:
No module named 'numpy.core._multiarray_umath’
En soit, c’ est logique. En effet dans le dossier numpy.core, il existe un fichier nommé _multiarray_umath.cpython-38-x86_64-linux-gnu mais pas de dossier _multiarray_umath.
La question est pourquoi en lançant l’ import de numpy par Thonny, cela fonctionne alors que depuis LO, sa plante.
Afin d’ être sur d’ utiliser la même version de numpy(1.22.0), je force l’ import par un sys.path.
C’ est vraiment frustrant!
Cordialement

Désolé, je ne suis pas familier de ton environnement ni de ce domaine. J’espère que d’autres réponses plus informées seront apportées (@LibreOfficiant peut-être ?).

Cordialement

Il y a fort à parier que l’environnement où est installé matplotlib ou numpy n’est pas celui de l’interpréteur Python de LibreOffice. Pour vérifier cela tapez “import uno” dans votre environnement Python.

En cas d’échec il faut installer matplotlib et numpy au sein de LibreOffice :

  1. lancer l’interpréteur Python comme indiqué ici
  2. installer pip3 dans libO avec get-pip.py téléchargeable ici
  3. installer matplotlib dans libO avec la commande ‘pip install -U matplotlib
  4. installer numpy avec la commande ‘pip install numpy

importer numpy ou matplotlib depuis un script Python dans libO devrait alors être possible.

Une autre solution est d’utiliser PyCharm, logiciel en anglais décrit ici, pour réaliser ces opérations.

Une solution probablement plus simple est d’utiliser l’extension zaz-pip, non traduite, brièvement décrite ici.

1 Like

merci :slight_smile: :+1: :clap:

Bonsoir,
Merci beaucoup à vous deux pour l" aide que vous m’ avez apportée. Je suis en train de reprendre la solution de LibreOfficiant. Dés que j’ aurais fini, je compléterai cette discussion.
Encore merci et à très bientôt

J’ ai un soucis avec la ligne deux de votre procédure. Après avoir ouvert une console python suivant les indications de la ligne un de vos explications,le téléchargement du fichier get-pip.py c’ est bien passé,Jj’ ai voulu à l’ aide de la console, entrez le chemin du dossier mais j’ ai une erreur me disant que cd n’ est pas défini.
J’ ai testé dans un terminal linux et, bien sur j’ ai pu accéder au dossier contenant le script. Par contre au lancement de la commande python get-pip.py, j’ ai une autre erreur dont voici le texte:
/Documents$ python get-pip.py
File “/opt/libreoffice7.1/program/…/program/python-core-3.8.8/lib/site.py”, line 178
file=sys.stderr)
^
SyntaxError: invalid syntax
Pourriez-vous m’ en dire plus?
Cordialement

il faut lancer la commande avec l’interpréteur Python de LibreOffice

Bonjour,
Désolé de vous faire perdre votre temps, mais toujours au même point. J’ ai copier par un sudo le script ** get-pip.py** dans le dossier LO contenant les modules. Ensuite, j’ ai lancé la commande dans l’ interpréteur de LO. Nouvelle erreur de syntaxe.
Afin de vérifier le résultat, je suis passé par les commandes suivantes dans l’ interpréteur python de LO:
Import sys
sys.path.append("/opt/libreoffice7.1/program/python-core-3.8.8/lib")
python get-pip.py
La réponse à été:
File “”, line 1
python get-pip.py
^
SyntaxError: invalid syntax
Je voudrais bien comprendre ce que je fais mal!!!
J’ ai même fais le test avec python3.
Cordialement

Une solution probablement plus simple est d’utiliser l’extension zaz-pip, non traduite, brièvement décrite ici.

Je viens de tester l’extension. Pip était déjà installé mais en revanche j’ai pu installer numpy et matplotlib comme montré dans le gif et je peux désormais faire les imports sans devoir ajouter le path.
Merci pour la recommandation :slight_smile:

Bonsoir,
Comme conseillé, j’ ai installé numpy et matplotlib avec ZAZ. Aucune erreur n’ a été signalé lors de ces installations. Malheureusement, je butte toujours sur le même message d’ erreur.
Les importations de ces deux modules ne fonctionnent pas.
Galère
Cordialement

Bonsoir,
Le problème vient de libreoffice. En fait, la version 6.4 utilise le python 3 du PC alors que la version 7.1 utilise la version 3.8.8 embarqué dans LO. La solution qui fonctionne est la suivante :
1 Lancez les commandes ci dessous dans un terminal
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt update
2 Désinstaller libreoffice:
sudo apt autoremove libreoffice*
3 Installer la dernière version de libreoffice
sudo apt install libreoffice
La version installée sera, à ce jour, la 7.2.5.2 en anglais. Attention toutefois d’ utiliser Synaptic pour ajouter les packages d’ aides et de langage.
A partir de la, vous pourrez importer numpy et matplotlib dans apso.
Merci à tous pour l’ aide apportée en espérant qu 'une nouvelle version ne vienne pas perturber ce bel agencement.
Cordialement

J’ ai trouvé la solution sur cette discussion.
https://forum.openoffice.org/fr/forum/viewtopic.php?f=8&t=64918

Merci pour le retour néamoins

Je ne partage pas vraiment ce point de vue car il semble qu’il s’agisse ici d’un conflit avec la version des paquets ubuntu et que cela fonctionne avec la version de TDF. Pour mémoire j’avais évoqué la possibilité d’un conflit de version…

La bonne nouvelle est que tu as une plate-forme fonctionnelle :slight_smile:

Cordialement