[RESOLU] Erreur lors de la création d'un paquet via le générateur de paquet application portable Windows

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
elux
Messages : 10
Inscription : 12 déc. 2022 - 09:02

18 août 2023 - 16:11

Bonjour,
J'ai un message d'erreur lors de mes tentatives d'installation d'un paquet généré par la console WAPT.
Le produit est W11Classicmenu et pour l'installer, il faut copier le répertoire. Je suis donc passé par le choix "application portable Windows"
Malheureusement, voici le message d'erreur que j'ai quand je veux l'installer :

Code : Tout sélectionner

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 4009, in install_wapt
    setup = import_setup(setup_filename)
  File "C:\Program Files (x86)\wapt\waptutils.py", line 1525, in import_setup
    py_mod = imp.load_source(modulename, setupfilename)
  File "imp.py", line 171, in load_source
  File "<frozen importlib._bootstrap>", line 702, in _load
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 839, in exec_module
  File "<frozen importlib._bootstrap_external>", line 976, in get_code
  File "<frozen importlib._bootstrap_external>", line 906, in source_to_code
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\WINDOWS\TEMP\wapt1fubbh_4\setup.py", line 26
    print("Copying directory: %%s to: %%s" %% (dir_name, app_dir))
                                            ^
SyntaxError: invalid syntax

SyntaxError: invalid syntax (setup.py, line 26)

Le setup.py me parait pourtant correct :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

r"""
Usable WAPT package functions: install(), uninstall(), session_setup(), audit(), update_package()

"""
# Declaring global variables - Warnings: 1) WAPT context is only available in package functions; 2) Global variables are not persistent between calls
dir_name = 'W11ClassicMenu'
app_name = 'W11ClassicMenu'
app_exe = 'W11ClassicMenu.exe'
app_dir = makepath(programfiles32, dir_name)
app_path = makepath(app_dir, app_exe)


def install():
    # Initializing variables

    # Installing software
    print("Installing: mgp-W11ClassicMenu")
    killalltasks(control.get_impacted_process_list())
    mkdirs(app_dir)
    if isdir(app_dir):
        remove_tree(app_dir)
    mkdirs(app_dir)
    print("Copying directory: %%s to: %%s" %% (dir_name, app_dir))
    copytree2(dir_name, app_dir)

    # Creating shortcuts
    create_desktop_shortcut(app_name, app_path)
    create_programs_menu_shortcut(app_name, app_path)


def uninstall():
    # Uninstalling software
    killalltasks(control.get_impacted_process_list())
    if isdir(app_dir):
        remove_tree(app_dir)

    # Removing shortcuts
    remove_desktop_shortcut(app_name)
    remove_programs_menu_shortcut(app_name)


def audit():
    # Declaring local variables
    package_version = '1.2.0.0'

    # Getting installed software version
    if isfile(app_path):
        installed_version = get_version_from_binary(app_path)
    else :
        installed_version = None

    # Auditing software
    print("Auditing: mgp-W11ClassicMenu")
    if installed_version is None or installed_version < package_version:
        print("%%s version is incorrect (%%s)" %% (app_name, installed_version))
        return "ERROR"
    else:
        print("%%s is installed in correct version (%%s)" %% (app_name, installed_version))
        return "OK"


Si vous avez une idée du problème...
Merci d'avance
Eric
Dernière modification par elux le 28 août 2023 - 15:48, modifié 1 fois.
Avatar de l’utilisateur
t.heroult
Messages : 205
Inscription : 08 déc. 2020 - 10:13

21 août 2023 - 09:19

Bonjour

Dans les paquets WAPT, en général, on utilise un seul "%" et pas deux.

au lieu de

Code : Tout sélectionner

print("Copying directory: %%s to: %%s" %% (dir_name, app_dir))
j'essaierais plutôt avec

Code : Tout sélectionner

print("Copying directory: %s to: %s" % (dir_name, app_dir))
Cordialement,
Tom
Server : WAPT Entreprise 2.5.4.15337 sur Debian
Consoles : Windows 10 & 11
Parc : Windows

Le saviez-vous ? Lorsque les tacons subissent une smoltification, leur mécanisme d'osmorégulation s'inverse !
Avatar de l’utilisateur
blemoigne
Messages : 34
Inscription : 17 juil. 2020 - 11:29

21 août 2023 - 10:54

Bonjour,
Python recommande même d'utiliser la syntaxe suivante maintenant :

Code : Tout sélectionner

print(f"Copying directory: {dir_name} to:  {app_dir}")
un f comme "format" avant la chaîne de caractères et des accolades pour chaque variable.

Bien cordialement,
Bertrand
elux
Messages : 10
Inscription : 12 déc. 2022 - 09:02

28 août 2023 - 15:48

Bonjour,
En effet ça a résolu le problème, merci bien !
Résolu
Verrouillé