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

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
elux
Mensajes: 11
Inscripción: 12 de diciembre de 2022 - 09:02

18 de agosto de 2023 - 16:11

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
Última edición realizada por elux el 28 de agosto de 2023 a las 15:48, editado 1 vez.
Avatar de usuario
t.heroult
Mensajes: 304
Inscripción: 8 de diciembre de 2020 - 10:13 a. m.

21 de agosto de 2023 - 09:19

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
Servidor: WAPT Enterprise 2.6.1.17765 en Debian
Consolas: Windows 10 y 11
Infraestructura: Windows

¿Sabías que? ¡Cuando los peces loro experimentan la esmoltificación, su mecanismo de osmorregulación se invierte!
Avatar de usuario
blemoigne
Mensajes: 176
Inscripción: 17 de julio de 2020 - 11:29

21 de agosto de 2023 - 10:54

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
elux
Mensajes: 11
Inscripción: 12 de diciembre de 2022 - 09:02

28 de agosto de 2023 - 15:48

Hola,
sí, eso solucionó el problema, ¡muchas gracias!
Resuelto
Bloqueado