5. FAQ - Paquets¶
5.1. Mise à jour des paquets WAPT de Python 2 à Python 3¶
Attention
Avec WAPT 2.0, le fonctionnement interne de WAPT est passé à python3. Les paquets WAPT DOIVENT aussi suivre la nouvelle syntaxe python3.
Syntaxe |
Python 2 |
Python 3 |
---|---|---|
|
|
|
unicode string |
|
|
opérateurs |
|
|
Accès à la base de registre Windows |
|
|
Indication
Pour plus d’informations, visitez le site :
5.2. Problèmes avec la création de paquet¶
5.2.1. Problèmes de droits avec PyScripter¶
Lorsqu’on souhaite tester l’installation d’un paquet sur son PC de développement de paquet à partir de PyScripter, on obtient le message :

Lancez PyScripter en utilisant un compte Local Administrator et refaites l’action souhaitée.
5.2.2. Mon paquet WAPT est trop volumineux et je n’arrive pas à l’uploader sur le dépôt¶
Quand un paquet est trop volumineux, il faut en général lancer le builder localement puis l’uploader avec WinSCP.
Assembler le paquet dans PyScripter ou manuellement.
Indication
Le paquet WAPT dans C:\waptdev
.
Télécharger et installer WinSCP
En utilisant WinSCP, uploadez votre paquet dans le dépôt selon la version du référentiel WAPT..
Une fois le téléchargement terminé, recréer le fichier d’index
Packages
sur le dépôt WAPT en utilisant la commande suivante et en remplaçant repository par le repository location selon la version du dépôt WAPT.
wapt-scanpackages repository
5.2.3. Erreur de violation d’accès lors de la re-signature du paquet WAPT¶

Si l’erreur Access violation apparaît, c’est parce que le paquet est trop gros.
Éditez le paquet et suivez cette procédure.
5.2.4. Paquet WAPT en erreur¶
5.2.4.1. Problème d’installation d’un paquet WAPT¶
J’ai un paquet WAPT qui renvoie une erreur et le logiciel n’est pas installé sur l’ordinateur lorsque je vais physiquement vérifier sur l’ordinateur.
5.2.4.1.1. Explication¶
Une erreur s’est produite lors de l’exécution du setup.py
.
Vous pouvez lire et analyser les messages d’erreur retournés dans la Console WAPT et tenter de les comprendre et de les résoudre.
L’installation des paquets sera retentée à chaque upgrade jusqu’à ce que le paquet ne génère plus d’erreur.
5.2.4.1.2. Solution¶
Si WAPT fournit un code d’erreur, chercher ce code d’erreur sur Internet.
Exemple avec un MSI : 1618 : Une autre installation est déjà en cours. Un redémarrage devrait solutionner le problème.
Note
Les différents codes d’erreur MSI sont disponibles ici.
Se déplacer physiquement sur la machine en erreur et relancer l’installation silencieuse en ligne de commande. Vérifier ensuite que le logiciel à bien été installé.
Attention
Une fois l’installation silencieuse lancée, ne pas intervenir.
L’objectif est de reproduire le comportement de l’Agent WAPT.
Si l’installation fonctionne en mode silencieux, en contexte utilisateur, cela peut signifier que l’installeur ne supporte pas l’installation en compte SYSTEM.
Si cela ne fonctionne toujours pas, lancer l’installation manuellement. Il est possible qu’une erreur apparaisse indiquant explicitement le problème. Exemple (Dépendance manquante : .Net , Java, etc..).
Il est possible que l’installeur ne supporte pas l’écrasement d’une installation précédente, alors prévoir la désinstallation des anciennes version avant d’installer la nouvelle version.
5.2.4.2. Erreur "timed out after seconds with output “600.0” »¶
Certains paquets dans la Console WAPT retournent l’erreur :
"Error timed out after seconds with output '600.0'"
5.2.4.2.1. Explication¶
Par défaut lors d’une installation (avec run, install_msi_if_needed ou install_exe_if_needed) WAPT va attendre 600 secondes que l’installeur lui rende la main.
Si l’installeur n’a pas terminé dans ce délai, WAPT coupera l’installation en « cours.
5.2.4.2.2. Solution¶
Si vous tentez d’installer un gros logiciel (Office, Solidworks, Libreoffice Katia, Adobe Creative Suite), il est possible que l’intervalle de 600 secondes ne soit pas suffisant.
Vous devez alors, augmenter cette valeur avec l’argument timeout, ex: timeout
= 1200
.
run('"setup.exe" /adminfile office2010noreboot.MSP', timeout = 1200)
5.2.4.3. rreur "has been installed but the uninstall key can not be found"¶
Certains paquets dans la Console WAPT retournent l’erreur :
XXX has been installed but the uninstall key can not be found.
5.2.4.3.1. Explication¶
WAPT s’appuie sur Windows pour installer les binaires .msi avec install_msi_if_need et les binaires .exe avec install_exe_if_need. »
Par défaut, WAPT accepte les codes de retour : 0 (OK) et 3010 (redémarrage nécessaire), et il vérifie la clé de désinstallation résultante (uninstall key).
Malheureusement, nous ne pouvons pas faire entièrement confiance à ces codes de retour, c’est pourquoi WAPT effectue des contrôles supplémentaires après l’installation pour s’assurer que tout s’est bien passé :
Il vérifie la présence de la clé de désinstallation sur la machine.
Il vérifie que la version est bien égale ou supérieure à celle renseignée du fichier
control
.Si ce n’est pas le cas, il en déduit que le logiciel n’est peut-être pas présent sur la machine.
La fonction bascule alors volontairement le paquet WAPT en erreur. L’installation sera retentée lors de chaque upgrade, jusqu’à ce que le paquet WAPT ne génère plus d’erreur.
5.2.4.3.2. Solution¶
Attention
Avant toute chose, il convient de se connecter sur la machine en erreur et de vérifier manuellement si le logiciel est correctement installé . Si ce n’est pas le cas, se référer à la documentation sur les problèmes d’installation d’un paquet..
Si le logiciel est bien installé, cela signifie peut être que la clé de désinstallation ou la version fournie dans le paquet n’est pas bonne.
Récupérer la bonne clé de désinstallation et corriger le paquet WAPT en conséquence.
Si l’erreur se produit avec install_msi_if_needed cela signifie que l’installeur MSI est mal conçu et renvoie une mauvaise clé de désinstallation.
5.2.4.4. Erreur "has been installed and the uninstall key found but version is not good"¶
Certains paquets dans la Console WAPT retournent l’erreur :
XXX has been installed and the *uninstall key* found but version is not good.
5.2.4.4.1. Explication¶
Avec les commandes install_msi_if_needed
or install_exe_if_needed
, des vérifications supplémentaires sont effectuées pour vérifier que tout s’est bien passé.
Attention
Avant toute chose, il convient de se connecter sur la machine en erreur et de vérifier manuellement si le logiciel est correctement installé . Si ce n’est pas le cas, se référer à la documentation sur les problèmes d’installation d’un paquet..
5.2.4.4.2. Solution : Avec install_msi_if_needed
¶
Les informations étant extraites depuis l’installeur MSI, cela signifie que le fichiers MSI ne renvoie pas la bonne version ou que la clé de désinstallation retournée n’est pas la bonne version.
Vous pouvez vérifier en utilisant l’utilitaire de ligne de commande Windows.
wapt-get list-registry
Si la clé retournée n’est pas celle renseignée dans la partie installation du fichier setup.py
, il n’est pas possible d’utiliser la fonction install_msi_if_needed
.
Vous DEVEZ revoir la section install de votre setup.py
, utiliser la fonction run()
et gérer manuellement les exceptions.
5.2.4.4.3. Solution : avec install_exe_if_need
¶
Cela signifie probablement que la version renseignée dans la fonction install_exe_if_needed n’est pas la bonne. Corriger le paquet WAPT en conséquence.
Note
Si l’argument min_version
n’a pas été renseigné, WAPT va tenter de récupérer automatiquement la version depuis l’installeur .exe.
Pour vérifier la clé de désinstallation utilisée et le numéro de version, utiliser la commande :
wapt-get list-registry
Si aucune version n’est fournie avec la commande list-registry, cela signifie que la clé de désinstallation du logiciel ne fournit pas de version.
Il existe deux solutions :
Utiliser l’argument
get_version
pour fournir un chemin vers une autreuninstallkey
.
def install():
def versnaps2(key):
return key['name'].replace('NAPS2 ','')
install_exe_if_needed('naps2-5.3.3-setup.exe',silentflags='/VERYSILENT',key='NAPS2 (Not Another PDF Scanner 2)_is1',get_version=versnaps2)
Fournir une valeur vide en argument pour
min_version
afin d’indiquer à WAPT qu’aucune version n’est à vérifier.
min_version=' '
Attention
Avec cette méthode on ne vérifiera plus la version lors de mise à jour !
5.2.4.5. Erreur "DNSName values should be passed as an A-label string"¶
FATAL ERROR : ValueError: DNSName values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.
Assurez-vous que le nom de machine ne contient pas de caractères spéciaux.