Página 1 de 1

[RESUELTO] Error al crear un paquete a través del generador de paquetes de aplicaciones portátiles de Windows

Publicado: 18 de agosto de 2023 - 16:11
por elux
Buen día,
Recibo un mensaje de error cuando intento instalar un paquete generado por la consola WAPT.
El producto es W11Classicmenu y, para instalarlo, es necesario copiar el directorio. Por lo tanto, usé la opción "Aplicación portátil de Windows"
Lamentablemente, este es el mensaje de error que recibo cuando intento instalarlo:

Código: Seleccionar todo

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)

El archivo setup.py me parece correcto:

Código: Seleccionar todo

# -*- 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 tienes alguna idea de cuál podría ser el problema...
gracias de antemano
Eric

Re: Error al crear un paquete a través del Generador de paquetes de aplicaciones portátiles de Windows

Publicado: 21 de agosto de 2023 - 09:19
por t.heroult
Buen día

En los paquetes WAPT, generalmente solo se utiliza un "%" y no dos.

en lugar de

Código: Seleccionar todo

print("Copying directory: %%s to: %%s" %% (dir_name, app_dir))
Yo lo intentaría con

Código: Seleccionar todo

print("Copying directory: %s to: %s" % (dir_name, app_dir))
Atentamente,
Tomás

Re: Error al crear un paquete a través del Generador de paquetes de aplicaciones portátiles de Windows

Publicado: 21 de agosto de 2023 - 10:54
por blemoigne
Buen día,
Python incluso recomienda ahora utilizar la siguiente sintaxis:

Código: Seleccionar todo

print(f"Copying directory: {dir_name} to:  {app_dir}")
una f para "formato" antes de la cadena y llaves para cada variable.

Atentamente,
Bertrand

Re: Error al crear un paquete a través del Generador de paquetes de aplicaciones portátiles de Windows

Publicado: 28 de agosto de 2023 - 15:48
por elux
Hola,
sí, eso solucionó el problema, ¡muchas gracias!
Resuelto