Page 1 sur 1

[RESOLU] Test script en local

Publié : 10 juil. 2018 - 12:12
par david999
Bonjour,

désolé si la réponse peut vous paraitre évidente, mais je débute en Python.
A l'heure actuelle, je créé plusieurs paquets sur le serveur Wapt puis les déploie.
Si j'ai des modifications à faire, je modifie le setup.py du paquet sur le serveur, puis je rebuild le package et le déploie à nouveau.
Le problème, c'est que lors de phases de tests, je me retrouve à rebuilder le package des tonnes de fois juste pour tester une fonction ou une syntaxe.

N'y a-t-il pas possibilité, depuis le poste client, d'exécuter des fonctions présentes dans le setuphelpers directement afin d'effectuer ces tests?
Lors que je tente d'importer setuphelpers sur le poste client, j'ai le message d'erreur:
No module named setuphelpers


Si quelqu'un a une solution, je suis preneur!!!

Merci d'avance.

Re: Test script en local

Publié : 10 juil. 2018 - 19:54
par htouvet
Voir PyScripter, et les configuration de tests :
https://www.wapt.fr/fr/doc/CreationPaqu ... index.html

Wapt a sa propre installation Python (=virtualenv)
Votre environnement de test local doit donc être configuré pour utiliser le virtualenv de wapt

Avec PyScripter, il ets très facile de tester votre paquet et les fonctions setuphelpers (shell python intégré : "from setuphelpers import * " )

Re: Test script en local

Publié : 11 juil. 2018 - 18:40
par david999
Bonjour htouvet,

merci beaucoup pour votre réponse.
Je rencontre cependant un problème pour lancer PyScripter.
En effet, après l'avoir installé sur le poste client via Wapt, je ne parviens pas à l'ouvrir. Lors du lancement, il me donne comme message d'erreur:
Could not load a python engine

J'ai vu qu'il fallait installer une version 32 bits de Python pour que cela fonctionne avec PyScripter.
https://github.com/pyscripter/pyscripte ... nstall.txt

J'ai vu également un moyen de contourner le problème en ajoutant un fichier batch dans le dossier de l'exe de PyScripter:
https://groups.google.com/forum/#!topic ... BbYQSCO0uQ

Contenu du fichier batch:
SET PYTHONHOME=C:\Python27
PyScripter --PYTHON27 --PYTHONDLLPATH "C:\Python27"

Malgré tout, je n'arrive pas à ouvrir PyScripter.
Selon le message d'erreur "Could not open DLL file : Error 193", ce serait un problème d'architecture incompatible avec la DLL.
Le poste est sous Windows 7 64bits.
Faut-il télécharger une dll python27.dll spécifique? Et si oui, où peut-on la récupérer?


Merci d'avance pour votre aide.

David

Re: Test script en local

Publié : 11 juil. 2018 - 18:53
par sfonteneau
Vous devez lancer pyscripter à travers wapt.

Clique droit sur un paquet puis éditer.

Ou utiliser "Assistant création de paquet" depuis la console.

Ou ouvrir un psproj déjà existant avec C:\Program Files (x86)\wapt\waptpyscripter.bat
Dans pyscripter -> projet -> ouvrir un projet -> ouvrir un psproj

Re: Test script en local

Publié : 11 juil. 2018 - 19:36
par david999
Bonjour,

merci pour ces infos.
Je parviens maintenant à ouvrir le psproj du paquet concerné depuis PyScripter.
Cependant, lorsque j'exécute le code présent dans le fichier setup.py, il me renvoie l'erreur:
No module named setuphelpers.

Dans l'arborescence du psproj dans PyScripter, je vois bien un fichier setuphelpers, mais:
1. Je ne sais pas comment faire pointer sur celui-ci
2. Le fichier setuphelpers est vide!

Désolé, j'imagine que ma demande est très bateau et simple, mais je ne vois pas trop comment faire...


Encore merci pour votre aide.


David

Re: Test script en local

Publié : 12 juil. 2018 - 09:23
par htouvet
Bonjour,

Rassurez-vous, ce que vous demandez n'est pas trivial...
Il ya potentiellement 2 problèmes :
- environnement python
- chemins dans le fichier wapt.psproj

Environnement Python :

En fait Wapt a son propre interpréteur et environnement Python (dans c:\program files(x86)\wapt)
Et PyScripter ne connait pas à priori l'existence de cet environnement.

Si vous avez la version 3.4.1 de PyScripter (celle qui est dans notre dépôt), il y a une fonction qui permet d'ajouter à PyScripter le chemin vers l'environnement Python de Wapt, pour que toutes les bibilothèques associées (dont setuphelpers) soient disponibles.

Menu Exceuter / Python Versions / Setup Python
Là cliquer le bouton + et sélectionner le répertoire de Wapt (par défaut c:\program files(x86)\wapt)
Dans la liste "Unregistred Versions", selectionner le folder Wapt et appuyer sur le premier bouton en haut à gauche (Activate selected python version)

à partir de là... vous pouvez tester et débugguer sans erreur...

Il y a un bouton (icone Python) dans la toolbar de PyScipter pour faire la même chose.

L'autre solution est de partir de Waptconsole pour editéer le paquet. Quand la console lance PyScipter, elle met en place les variables d'enrionnement et les arguments corrects pour que pyscripter utilise l'interpréteur de Wapt.

Une autre solution est de faire en ligne de commande :
wapt-get edit <nomdupaquet>

Ce qui fait la même chose que dans la console.

Chemins dans le fichier wapt.psproj

Le fichier wapt.psproj mémorrise les chemins (absolus dans les versions antérieures de Wapt...) vers notamment le fichiers wapt-get.py.

wapt-get.py est utilisé pour tester les paquets.

Vous devez vérifier par un clic droit sur la configuration d'exécution (Run configuration) par exemple "install" / Editer la configuration d'exécution.

Le Script python / Nomde fichier : doit pointer vers le bon répertoire par rapport à votre installation. Normalement c:\Program files(x86)\wapt mais avant c'était c:\wapt)

Re: Test script en local

Publié : 12 juil. 2018 - 09:52
par david999
Bonjour htouvet,

un grand MERCI!
Après avoir ajouté le chemin du dossier Wapt dans "Unregistred Versions" et l'avoir activée, tout fonctionne!
Je vais enfin pouvoir faire tous mes tests en local sur mon poste de test.

La solution sur le serveur est intéressante également, mais dans ce cas c'est surtout pour tester des choses sur un poste spécifique.
Et, en effet, les chemins dans le fichier wapt.psproj pointent vers l'ancien dossier d'installation de Wapt.
J'ai donc pu les modifier.

De nouveau, merci beaucoup pour votre aide et toutes ces explications détaillées!!!


Bonne journée

David