Page 1 sur 1

Installation aléatoire

Publié : 01 juin 2026 - 08:36
par Lazaare
Pour WAPTConsole Entreprise version 2.6.1.17765 et windows.

Bonjour à tous,
je suis en train d'essayer de déployer un paquet WAPT "maison". Une arborescence de dossiers et de fichiers est contenue dans le paquet, et via le setup.py configuré dans PyScripter, je viens copier/coller ces fichiers dans la même arborescence déjà présente sur la machine.
Cependant, lorsque je déploie ce paquet, sur certaines machine, il s'installe parfaitement bien, aucun soucis. Tandis que sur d'autres machines (qui sont techniquement exactement les mêmes), ce log d'erreur s'affiche dans WAPT :

Code : Tout sélectionner

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 4349, in install_wapt
    packagetempdir = entry.unzip_package(cabundle=self.cabundle, target_dir = tempfile.mkdtemp(prefix='wapt',dir=self.wapt_temp_dir))
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2664, in unzip_package
    raise e
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2656, in unzip_package
    verified_by = self.check_package_signature(cabundle,ignore_missing_files=ignore_missing_files)
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2607, in check_package_signature
    raise EWaptCorruptedFiles('Error in package %s in %s, files corrupted, SHA not matching for %s' % (self.asrequirement(), self.sourcespath, errors,))
waptpackage.EWaptCorruptedFiles: Error in package nomdupaquet-2026(=0-12) in C:\Program Files (x86)\wapt\private\tmp\wapt7uw7xem7, files corrupted, SHA not matching for liste de l'entièreté des fichiers contenus dans le paquet
J'ai bien vérifié l'absence de fichiers bloquants comme "thumbs.db" ou "desktop.ini".
En regardant les autres posts, j'ai bien vérifié l'intégrité du build via PyScriter ou encore je sais que je n'ai pas d'antivirus qui vient modifier des fichiers.
Auriez-vous une piste de comment régler ce problème ?

Merci d'avance !

Re: Installation aléatoire

Publié : 01 juin 2026 - 09:52
par italbot
Bonjour,

Si ça s'installe correctement sur certains postes, j'imaginerais bien un fichier modifié par le système.

Vous avez quels types de fichiers dans votre paquet ? Est-il possible de voir le script du fichier setup ?

Cordialement,

Ingrid

Re: Installation aléatoire

Publié : 01 juin 2026 - 10:13
par Lazaare

Code : Tout sélectionner

from setuphelpers import *
#import shutil
import os

uninstallkey = []
# déclarer les dossiers dans l'arborescence du paquet
sig_folder = "IdGISView"
resources_folder = "Resources"
idmeansplugin_folder = "IdMeansPlugin"
idoctplugin_folder = "IdOctPlugin"
settings_folder = "Settings"

dossiers_paquets_possibles = [
    os.path.join(sig_folder),
    os.path.join(resources_folder),
    os.path.join(idmeansplugin_folder),
    os.path.join(idoctplugin_folder),
    os.path.join(settings_folder)]

# déclarer le chemin de l'application CRIMSON, à déclarer comme dossier racine de destination
app_dir = makepath("c:", "CRIMSON 8.0.2", "Bin")

#
# Définir l'update des dossiers à partir de fichiers contenus dans les dossiers du paquet
def install():
    # Filtrer seulement les dossiers existants dans le paquet WAPT
    dossiers_paquet_reels = []
    for dossier in dossiers_paquets_possibles:
        if os.path.isdir(dossier):
            #print(f"ce dossier {dossier} existe")
            dossiers_paquet_reels.append(dossier)
        else:
            #print(f"ce dossier {dossier} n'existe pas")
            pass
        pass

    # boucler sur tous les dossiers sources (et donc leur equivalent en nom en dossier destination)
    for chaque_dossier in dossiers_paquet_reels:

        #print("mapping : %s" %dossier_racine_destination_equivalent)


        for root, dirs, files in os.walk(chaque_dossier):
            for file in files:
                    fichier_source = os.path.join(root, file)
                    creation_si_existe_pas = os.path.join(app_dir, root)
                    os.makedirs(os.path.join(creation_si_existe_pas), exist_ok=True)

                    if file.startswith("del_"):
                        file_a_delete = file[len("del_"):]
                        fichier_destination = os.path.join(root, file_a_delete)
                        chemin_et_fichier_destination = os.path.join(app_dir, fichier_destination)
                        if os.path.isfile(chemin_et_fichier_destination):
                            os.remove(chemin_et_fichier_destination)
                        else:
                            print("[INFO] fichier introuvable, suppression ignorée :", chemin_et_fichier_destination)

                    else:
                        fichier_destination = fichier_source
                        chemin_et_fichier_destination = os.path.join(app_dir, fichier_destination)
                        filecopyto(fichier_source, chemin_et_fichier_destination)
                    pass
            pass
        pass
    pass
def unistall():
    pass
Voilà pour le code de "setup".
Et les fichiers du paquets sont essentiellement des
- json
- vgeo
- pdf

Comment les fichiers pourraient être modifiés entre le build PyScripter et l'upload sur WAPT ?

Re: Installation aléatoire

Publié : 01 juin 2026 - 11:01
par dcardon
Bonjour Lazare,

Est ce qu'il y a tous les fichiers dans cette liste, ou juste une partie? Est ce qu'il y a les chemins d'install des fichiers qui font plus de 256 caractères?

Cordialement,

Denis

Re: Installation aléatoire

Publié : 01 juin 2026 - 13:29
par Lazaare
Bonjour Denis,

la longueur max d'un chemin serait de 243. Un chemin de plus de 256 bloquerait ?
Concernant la liste précise des extensions de fichiers:
  • png / jpg
    Symbols / sld
    svg
    vgt
    vrgis / vgeo
    dbf
    prj
    qix
    shp/shx
    vgeo
    xml
    bin
    db
    bgz
    pdf
    htm
    docx
    ink
    doc
    gif
    ppt
    xls / xlsx
    ods
    pps / ppsx / pptx
    - wmf
    js
    emz
    mp3
    odt
    dwg

Re: Installation aléatoire

Publié : 01 juin 2026 - 16:14
par dcardon
Bonjour Lazare,

par défaut Windows a historiquement une longueur de chemin maximale de 256 caractères. Les systèmes modernes n'ont pas cette limitation qui est désormais complètement artificielle. Mais en fonction de la conf machine et en fonction de la manière dont on fait l'appel au filesystem local, la limitation peut être applicable ou pas.

Lors de l'installation du paquet wapt, celui ci est dézippé dans c:\windows\temp dans un répertoire avec un nom aléatoire, dont la longeur se rajoute au 243 caractères que vous avez déjà dans votre arborescence...

Sur une des machines qui posent problème, est ce que vous pourriez vérifier la valeur de :

Code : Tout sélectionner

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem]
"LongPathsEnabled"=dword:00000001
Et si elle est à 0 est ce que vous pouvez essayer de la passer à 1 pour voir si ça résoud le problème (sur une machine).

Cordialement,

Denis