[GELÖST] Fehler beim Erstellen eines Pakets über den Windows Portable Application Package Generator

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Gesperrt
elux
Nachrichten: 11
Anmeldung: 12. Dezember 2022 - 09:02 Uhr

18. August 2023 – 16:11 Uhr

Guten Morgen,
Ich erhalte eine Fehlermeldung, wenn ich versuche, ein von der WAPT-Konsole generiertes Paket zu installieren.
Das Produkt heißt W11Classicmenu, und um es zu installieren, muss man das Verzeichnis kopieren. Deshalb habe ich die Option „Portable Windows-Anwendung“ verwendet
Leider erhalte ich beim Installationsversuch folgende Fehlermeldung:

Code: Alle auswählen

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)

Die setup.py-Datei scheint mir korrekt zu sein:

Code: Alle auswählen

# -*- 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"


Falls Sie eine Ahnung haben, woran das Problem liegen könnte...
Dank im Voraus
Eric
Zuletzt bearbeitet von elux am 28. August 2023 um 15:48 Uhr, 1 Mal bearbeitet.
Benutzeravatar
t.heroult
Nachrichten: 309
Anmeldung: 8. Dezember 2020 - 10:13 Uhr

21. August 2023 - 09:19 Uhr

Guten Morgen

In WAPT-Paketen wird im Allgemeinen nur ein "%" verwendet, nicht zwei.

anstatt

Code: Alle auswählen

print("Copying directory: %%s to: %%s" %% (dir_name, app_dir))
Ich würde es versuchen mit

Code: Alle auswählen

print("Copying directory: %s to: %s" % (dir_name, app_dir))
Aufrichtig,
Tom
Server: WAPT Enterprise 2.6.1.17786 auf Debian
Konsolen: Windows 10 & 11
Infrastruktur: Windows

Wussten Sie schon? Wenn Papageifische die Smoltifizierung durchlaufen, wird ihr Osmoregulationsmechanismus umgekehrt!
Benutzeravatar
Blemoire
Nachrichten: 178
Anmeldung: 17. Juli 2020 - 11:29 Uhr

21. August 2023 - 10:54 Uhr

Guten Morgen,
Python empfiehlt mittlerweile sogar die Verwendung der folgenden Syntax:

Code: Alle auswählen

print(f"Copying directory: {dir_name} to:  {app_dir}")
ein f für "Format" vor der Zeichenkette und geschweifte Klammern für jede Variable.

Beste grüße,
Bertrand
elux
Nachrichten: 11
Anmeldung: 12. Dezember 2022 - 09:02 Uhr

28. August 2023 – 15:48 Uhr

Hallo,
ja, das hat das Problem gelöst, vielen Dank!
Erledigt
Gesperrt