Bonjour, je suis un nouvel utilisateur WINDEV28, et sur ce premier post je viens malheureusement chercher un peu d'aide sur certains bugs d'injections python dans du code WINDEV28.
De manière synthétique: j'ai un petit projet qui marche bien, et qui utilise pas mal de fonctions pythons que j'ai codées. Théorie du signal, la plateforme travaille sur certaines fréquences de morceaux de musiques.
Tout allait bien dans le meilleur des mondes jusqu'au moment où j'ai voulu créer un executable du projet pour le faire tourner sur d'autres machines. Mes premiers tests étaient concluant sur du bébé python injecté. Je précise que l'executable marche bien sur ma machine de développement, toutes les fonctions python fonctionnent en injection windev, ou en Thonny, voir même en compilation fenetre de commande, et même en .exe py installer. (windows 11 icore 5) Cet executable est sur une clef (qui contient en gros le .exe projet, la BDD, le fichier .py)
Cet executable crash sur certaines fonctions python sur deux autres machines (windows 10 core i5, windows 11 core i7) qui ont pourtant exactement les mêmes versions de python 3.11.9, ainsi que les mêmes versions des bibliothèques numpy, matplotlib, sounddevice, librosa
Là où ca devient délirant, c'est que ces fonctions séparément fonctionnent sur ces deux autres machines, c'est juste quand je les injecte en windev qu'elles ne marchent pas. Hors en injection elles marchent sur la machine initiale !
Je ne vois pas ce qui peut déconner. J'ai pensé à beaucoup de choses, mais en vain, je n'ai rien eu de concluant... Quelques petites questions au passage, car je ne trouve pas de réponse dans la doc:
1°) dans le menu projet description description de la configuration courante composants bibliothèques externes python
on place ici le chemin des biblio python, par défaut c'est un chemin user: C:\Users\[USER]\AppData\Roaming\Python\Python311\site-packages
Lors du passage du projet en .exe, comment l'exe fait pour aller retrouver ses petits dans la nouvelle machine ? C'est par le PythonInitialise("C:\Program Files\Python311\python311.dll") qu'il va retrouver ses bibliothèques ? Après mes nombreux tests, l'exe a absolument besoin du fichier python de base, du compilateur sur la machine cliente, mais je ne vois pas comment il retrouve ce chemin des biblio externes.
Après... Il doit bien le trouver car j'ai une partie de mes fonctions qui marchent sur les nouvelles machines...
2°) dans la doc, j'ai lu qu'il ne faut pas passez en paramètres des fonctions python des tableaux windev. Je me suis permis de le faire avec des tableaux d'entiers. Je rappelle que mon projet marche sur ma machine de développement. Est ce possible que le souci viennent de là ? Ca serait surprenant tout de même...
3°) J'ai une erreur de compilation dans mon projet, une seule. Je n'ai jamais compris d'où elle venait: Erreur :MesFonctionsPythonV7 : une erreur fatale s'est produite lors de l'appel à une fonction interne Python : SystemError('D:\a\1\s\Objects\structseq.c:476: bad argument to internal function') Holopsone, , ligne 1, colonne 1
A savoir que mon projet marche en dev, hein ? Ce peut il que celà viennent de là ? Que me conseillez vous pour attaquer cette erreur de compilation ? (j'ai déjà commencé à chercher, en vain, avec des résultats surprenants et aléatoires...) Le windev n'est il pas en train de m'engueuler à cause de mes tableaux d'entiers en paramètres ? Vous avez de l'XP là dessus ?
Il faut que je vous signale une chose, après l'affichage de cette erreur de compilation, si je redemande à la PtF de compiler une deuxième fois ce projet, la plateforme chash immédiatement !
Voilà, j'ai essayez d'être le plus synthétique possible, n'hésitez pas à me demander des précisions sur tels ou tels sujets. Avant de rentrer dans du détail plus lourd, mon objectif premier est de savoir si je n'ai pas loupé une évidence fondamentale, un panneau à un mètre de mon nez, un truc absolu. Je ne pense pas mais sait-on jamais...
Et puis je serai curieux de connaitre votre XP sur le sujet. ++ |