[Résolu] [Python] Script non reconnu dans Basic

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

[Résolu] [Python] Script non reconnu dans Basic

Message par ddorange »

Bonjour,

Le contexte : dans mon dossier user/Scripts/python figure un dossier pythonpath avec les bibliothèques mpmath et sympy. Je n'ai pu mettre en pièces attachées le dossier compressé.

Si je lance CallPython, j'obtiens bien un print dans LO avec Vive.
Si je lance le Script HelloPython avec la console APSO, j'ai bien comme retour Vive.

Je remplace return "Vive" par return m

Avec la console APSO, j'ai bien x**2 + 2*x + 1
MAIS, le script CallPython donne une erreur Script pas trouvé : Hello.py$HelloPython 0

Peut-être parce que x**2 + 2*x + 1 n'est pas interprété comme une chaîne ?

Code : Tout sélectionner

Sub CallPython
 	Toto = simpleScript("Hello.py$HelloPython","Python","user")
	Print Toto
End Sub



Function simpleScript(nomScript As String, langage As String, emplacement As String)
	Dim mspf As Object, scriptPro As Object, monScript As Object

	mspf = createUnoService( "com.sun.star.script.provider.MasterScriptProviderFactory")
	scriptPro = mspf.createScriptProvider("")
	On Error Goto PasScript1
	monScript = scriptPro.getScript("vnd.sun.star.script:" & nomScript & "?language=" & langage & "&location=" & emplacement)
	simpleScript = monScript.invoke(Array(), Array(), Array())
	On Error Goto 0
	Exit Function

	PasScript1:
	Resume PasScript2
	PasScript2:
	MsgBox("Script pas trouvé : " & nomScript & "  " & Erl, 16)
End Function

Code : Tout sélectionner

from sympy import *

def HelloPython( ):
    m = symbolic()
    return "Vive"

def symbolic( ):
	x = Symbol("x")
	y = expand((x+1)**2)
	return y
Le serveur du forum n'a pas accepté mes pièces jointes (13,8 Mo). Je peux vous les faire parvenir si besoin ou mettre un lien si ce n'est pas interdit.
Merci d'avance pour votre aide.
Dernière modification par Phantéd le 11 nov. 2017 15:23, modifié 3 fois.
Raison : Coche verte
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re:  [Python] Script non reconnu dans Basic

Message par Hubert Lambert »

Bonjour,

Ta valeur de retour "m" est un objet de type "sympy.core.add.Add", inconnu de LibO.
Essaie en retournant sa représentation* :

Code : Tout sélectionner

    return str(m)
Cordialement.

* Lorsque python affiche une variable dans la console ou avec un appel à "print", il utilise en fait la fonction "str" pour afficher une représentation de la valeur contenue dans cette variable.
Dernière modification par Hubert Lambert le 11 nov. 2017 14:58, modifié 2 fois.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

Re:  [Python] Script non reconnu dans Basic

Message par ddorange »

Merci Hubert.
Je me réponds à moi même.
J'avais trouvé return format(m)
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma