DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion de Windows / Fonctions Python
  • Présentation
  • Attention
  • Exemples de code
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Présentation
Le WLangage permet d'utiliser des fonctions Python en mode natif (pour plus de détails, consultez Python : Appels natifs). Il est également possible d'exécuter directement des fonctions Python depuis le code WLangage.
Plusieurs fonctions sont à votre disposition :
PythonAjouteCheminPermet d'ajouter le chemin d'un répertoire ou le chemin de l'environnement virtuel pour la recherche des modules Python.
PythonExécuteExécute une fonction présente dans un module Python.
PythonInitialiseIndique l'emplacement de la DLL Python à charger.
PythonTermineDécharge la DLL Python et libère la mémoire.

Attention

  • L'exécutable déployé doit avoir les modules ".py" accessibles sur disque dans son dossier, ou à l'emplacement donné par la fonction PythonAjouteChemin. Les modules ".py" ne peuvent pas être trouvés s'ils sont intégrés à la bibliothèque de l'exécutable.
  • Python fait la différence entre les majuscules et les minuscules ("case-sensitive"). Le nom du module et de la fonction doivent donc respecter la casse.
Exemples de code
Exemple 1 :
// Initialisation de l'interpréteur Python
PythonInitialise(CHEMIN_INSTALL_PYTHON + "\Python39\python3.dll")
// Déclare les chemins d'import des modules utilisés
PythonAjouteChemin("D:\source.test\pythonProject\venv\Lib\site-packages")
PythonAjouteChemin("D:\source.test\pythonProject")
// Résolution de 5x³+x²-3x+2=0
sEquation est une chaîne = "5*x**3+x**2-3*x+2"
sListeRacine est une chaîne = PythonExécute("main", "solveur", sEquation)
nNbRacine est un entier = ChaîneOccurrence(sListeRacine, ",") + 1
Trace("L'équation ""[%sEquation%]"" admet [%nNbRacine%] racines :")
POUR n = 1 _À_ nNbRacine
	Trace("r[%n%] = [%ExtraitChaîne(sListeRacine, n, "", "")%]")
FIN
Exemple 2 :
sModulePython est une chaîne 
<SI CibleExécution=Windows>
	// Exemple d'emplacement du module Python
	// Le nom du module Python peut être différent
	sModulePython = SysRep(srAppDataLocal) + ..
				[fSep]+"Programs\Python\Python39\python39.dll"
<SINON>
	<SI CibleExécution=Linux>
	// Exemple d'emplacement du module Python
	// Le nom du module Python peut être différent 
	// (dépend de la version de Python, de la distribution Linux)
	sModulePython ="/usr/bin/python/python39.so"
	<FIN>
<FIN>
SI PAS PythonInitialise(sModulePython) ALORS
	// Il faut dans ce cas : 
	// Vérifier le chemin 
	// Vérifier que le mode de compilation (32/64 bits) correspond au mode d'exécution
	Erreur("Echec de l'initialisation de Python", ErreurInfo())
	RETOUR
FIN
Info(FonctionPythonImporteeHelloWorld())
// Avec un fichier Python importé (.py) dans le projet qui contient :
// def FonctionPythonImporteeHelloWorld():
//    return "Hello World !";

SI PAS PythonAjouteChemin(fRepDonnées()) ALORS
	Erreur("Echec de l'initialisation d'un chemin Python", ErreurInfo())
	RETOUR
FIN
// Le fichier Python "fichier_python.py" doit être présent dans le répertoire
// spécifié par la fonction PythonAjouteChemin. 
// Dans cet exemple, ce répertoire correspond au répertoire des données 
Info(PythonExécute("fichier_python", "FonctionPythonHelloWorldNonImportee"))

PythonTermine()
Liste des exemples associés :
WD Python Exemples didactiques (WINDEV) : WD Python
[ + ] L’exemple WD Python montre comment exécuter du code Python dans vos applications WINDEV.
Pré-requis : Il est nécessaire que Python 3 soit installé sur l’ordinateur. Vous pouvez installer Python 3 à partir de l’adresse suivante : http://legacy.python.org/download/
Version minimum requise
  • Version 27
Commentaires
IMPORTANTE
Hello Guys!

Para resolver a compilação do Python pelo Webdev voce tera que fazer o seguinte ajuste:

https://hostimage.windev.io/images/BUG64_c5a2a700bcd82b0dcceab7c195f4fad7.png

Na versao inglesa
C:\PCSOFT\WEBDEV 29\Programs\Engine

Na versão francesa
C:\PCSOFT\WEBDEV 29\Programmes\Moteur

Copiar tudo da pasta 64 e colar na pasta 32

C:\PCSOFT\WEBDEV 29\Programs\Engine\Win64x86
para
C:\PCSOFT\WEBDEV 29\Programs\Engine\Win32x86

Substituir tudo

Testar novamente o teu projeto Python vai funcionar.

Abri chamado informado do ocorrido quem sabe em futuras versoes isso esteja resolvido.

Por algum motivo o Python busca pela pasta 32 em vez de buscar pela pasta 64.

Espero ter ajudado.
Boller
25 mai 2024
IMPORTANTE
PARA FUNCIONAR NO WEBDEV

É necessário setar corretamente o caminho do modulo python, para executar uma função em um módulo python:

sPythonModule is string

<IF ExecutionTarget=Windows>

sPythonModule = SysDir(srLocalAppData) + ..
[fSep]+"Programs\Python\Python39\python39.dll"

END
Boller
13 mai 2024

Dernière modification : 13/09/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale