Seite 1 von 1

IndexError: Tupelindex außerhalb des gültigen Bereichs bei einem einzelnen Beitrag

Veröffentlicht: 2. Juli 2020 - 10:27 Uhr
von jlatieule
Guten Morgen,


Ich erhalte bei der Installation eines Pakets die Fehlermeldung „IndexError: Tupelindex außerhalb des gültigen Bereichs“, allerdings nur auf einem Rechner. Auf anderen Rechnern mit Windows 10 und Windows 7 (32-Bit und 64-Bit) funktioniert es einwandfrei.
Im Zweifelsfall habe ich den Agenten nach der vollständigen Deinstallation neu installiert.

Hier ist das Skript, das mit wapt 1.7.4 läuft... vielleicht hängt das Problem mit session_setup() zusammen:
Übrigens, falls Sie Ihrem tis-foxit-Paket Optionen für Stempel/Signaturen hinzufügen möchten, funktioniert das, was ich hinzugefügt habe, gut.

Code: Alle auswählen

# -*- coding: utf-8 -*-
from setuphelpers import *
import requests
import platform
try:
    import bs4 as BeautifulSoup
except:
    import BeautifulSoup

uninstallkey = []

# Declaring specific app values (TO CHANGE)
bin_name_string = 'FoxitReader_%s_Setup.exe'
silent_args_string = '/ForceInstall /VERYSILENT DESKTOP_SHORTCUT="0" MAKEDEFAULT="1" VIEWINBROWSER="0" LAUNCHCHECKDEFAULT="1" AUTO_UPDATE="0" /passive /norestart /LANG=%s'
app_uninstallkey = 'Foxit Reader_is1'


def install():
    # Specific app values
    package_version = control.version.split('-',1)[0]
    lang = get_language()

    # Installing the package
    install_exe_if_needed(bin_name_string % package_version
        ,silentflags=silent_args_string % lang
        ,key=app_uninstallkey
        ,min_version=package_version)

    registry_setstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Policies\Explorer\DisallowRun','foxit_updater','FoxitReaderUpdater.exe')

    remove_desktop_shortcut('Foxit Reader')

    # Purge des anciens modèles
    remove_tree(r'c:\ProgramData\Foxit Software\Signature')
    remove_tree(r'c:\ProgramData\Foxit Software\UserStamps')

    # Copie du modèle de signature Domitia
    copytree2('Signature',r'c:\ProgramData\Foxit Software\Signature')
    # Copie du modèle de tampon
    copytree2('UserStamps',r'c:\ProgramData\Foxit Software\UserStamps')


def session_setup():
    print('Disabling auto update check')

    # Specific app values
    package_version = control.version.split('-',1)[0]
    split_package_version = package_version.split('.')
    short_package_version = '%s.%s'% (split_package_version[0],split_package_version[1])

    registry_setstring(HKEY_CURRENT_USER,r'Software\Foxit Software\Foxit Reader %s\plugins\Updater' % short_package_version,'UpdateMode','0')

    updater_path = makepath(user_appdata,'Foxit Software','Addon','Foxit Reader','FoxitReaderUpdater.exe')
    if isfile(updater_path):
        remove_file(updater_path)

    #Ordinateur\HKEY_CURRENT_USER\Software\Foxit Software\Foxit Reader 10.0\Preferences\Registration
    #bShowRegisterDlg = 0

    # Désactivation enregistrement à la première utilisation
    registry_setstring(HKEY_CURRENT_USER, r"Software\Foxit Software\Foxit Reader 10.0\Preferences\Registration",'bShowRegisterDlg','0', type=REG_SZ)

    # Intégration de la signature Domitia
    mkdirs(makepath(user_appdata,'Foxit Software','Foxit Reader','Signature'))
    filecopyto(r'c:\ProgramData\Foxit Software\Signature\style.foxitdata',makepath(user_appdata,'Foxit Software','Foxit Reader','Signature'))

    # Intégration du modèle de tampon Domitia
    mkdirs(makepath(user_appdata,'Foxit Software','Foxit Reader','Stamps','UserStamps'))
    filecopyto(r'c:\ProgramData\Foxit Software\UserStamps\FXSvlmkiquvspwvgxy.pdf',makepath(user_appdata,'Foxit Software','Foxit Reader','Stamps','UserStamps'))

    # Suppression d'ancien modèle de tampon
    remove_file(makepath(user_appdata,'Foxit Software','Foxit Reader','Stamps','UserStamps','FXSusgzziovrftavgp.pdf'))


def update_package():
    print('Download/Update package content from upstream binary sources')

    # Getting proxy informations from WAPT settings
    proxy = {}
    if platform.system()=='Windows' and isfile(makepath(user_local_appdata(),'waptconsole','waptconsole.ini')):
        proxywapt = inifile_readstring(makepath(user_local_appdata(),'waptconsole','waptconsole.ini'),'global','http_proxy')
        if proxywapt :
            proxy = {'http':proxywapt,'https':proxywapt}

    # Specific app values
    app_name = control.name
    url = 'https://www.foxitsoftware.com/pdf-reader/version-history.php'

    # Getting latest version from official website
    page = requests.get(url,headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'}).text
    bs = BeautifulSoup.BeautifulSoup(page)
    #bs = BeautifulSoup.BeautifulSoup(page,features="html.parser") # For bs4 only
    bs_raw_string = str(bs.find('h3').text)
    version = bs_raw_string.replace('Version ','')

    url_dl = 'https://www.foxitsoftware.com/downloads/latest.php?product=Foxit-Reader&platform=Windows&package_type=exe&language=French&version=%s' % version
    latest_bin = bin_name_string % version

    print('Latest ' + app_name + ' version is: ' + version)
    print('Download url is: ' + url_dl)

    # Downloading latest binaries
    if not isfile(latest_bin):
        print('Downloading: ' + latest_bin)
        wget(url_dl,latest_bin,proxies=proxy)

        # Get version from file
        version_from_file = get_file_properties(latest_bin)['ProductVersion']
        if version != version_from_file and version_from_file != '':
            version = version_from_file
            old_latest_bin = latest_bin
            latest_bin = bin_name_string % version
            if isfile(latest_bin):
                remove_file(latest_bin)
            os.rename(old_latest_bin,latest_bin)

		# Change version of the package
        pe = PackageEntry().load_control_from_wapt('.')
        pe.version = '%s-%s'%(version,int(pe.version.split('-',1)[1])+1)
        pe.save_control_to_wapt('.')
        print('Changing version to ' + pe.version + ' in WAPT\\control')
        print('Update package done. You can now build-upload your package')
    else:
        print('This package is already up-to-date')

    # Deleting outdated binaries
    for bin_in_dir in glob.glob('*.exe') or glob.glob('*.msi'):
        if bin_in_dir != latest_bin :
            print('Outdated binary: ' + bin_in_dir + ' Deleted')
            remove_file(bin_in_dir)
Hier ist außerdem der Debugging-Befehl: `wapt-get install ophlm-foxit -ldebug`

2020-07-02 10:17:10,618 DEBUG Standardkodierung: ascii
2020-07-02 10:17:10,618 DEBUG Kodierung für stdout und stderr auf cp850 gesetzt
2020-07-02 10:17:10,624 DEBUG Python-Pfad ['C:\\Program Files (x86)\\wapt', 'C:\\Program Files (x86)\\wapt', 'C:\\Program
Files (x86)\\wapt\\python27.zip', 'C:\\Program Files (x86)\\wapt\\DLLs', 'C:\\Program Files (x86)\\wapt\\lib', 'C:\\Program
Files (x86)\\wapt\\lib\\plat-win', 'C:\Program Files (x86)\wapt\lib\lib-tk', 'C:\Program Files (x86)\wapt',
'C:\Program Files (x86)\wapt\lib\site-packages', 'C:\Program Files (x86)\wapt\lib\site-packages\pywin32-223-py2
.7-win32.egg']
2020-07-02 10:17:10,625 INFO Lokale waptservice-Konfiguration wird verwendet: C:\Program Files (x86)\wapt\wapt-get.ini
2020-07-02 10:17:10,625 DEBUG Konfigurationsdatei: C:\Program Files (x86)\wapt\wapt-get.ini
Konfigurationsdatei wird verwendet: C:\Program Files (x86)\wapt\wapt-get.ini
2020-07-02 10:17:10,628 DEBUG Thread 1480 verbindet sich mit der wapt-Datenbank
2020-07-02 10:17:10,694 DEBUG Hostzertifikat C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F3
33332.pem für die globale Repository-Authentifizierung wird verwendet
2020-07-02 10:17:10,723 DEBUG Thread 1480 verbindet sich mit der wapt-Datenbank
2020-07-02 10:17:10,723 DEBUG Datenbank-Transaktion gestartet
2020-07-02 10:17:10,723 DEBUG DB-Commit
2020-07-02 10:17:10,782 DEBUG Hostzertifikat C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F3
33332.pem für Repo wapt auth wird verwendet.
2020-07-02 10:17:10,901 DEBUG Hostzertifikat C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F3
33332.pem für Repo wapt-host auth wird verwendet.
2020-07-02 10:17:10,930 INFO Benutzergruppen: []
2020-07-02 10:17:10,930 DEBUG WAPT-Basisverzeichnis: C:\Program Files (x86)\wapt
2020-07-02 10:17:10,930 DEBUG Paketcache-Verzeichnis: C:\Program Files (x86)\wapt\cache
2020-07-02 10:17:10,930 DEBUG WAPT-DB-Strukturversion: 20190606
2020-07-02 10:17:10,930 DEBUG Überprüfe, ob eine alte Installation läuft
2020-07-02 10:17:10,940 DEBUG Setze den Status der blockierten Installation in der Datenbank zurück.
Installation der WAPT-Pakete ophlm-foxit
2020-07-02 10:17:10,974 DEBUG Lade SSL-Kontext mit Zertifikat C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039
-B5C04F333332.crt und Schlüssel C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F333332.pem
2020-07-02 10:17:11,178 INFO Verwende zwischengespeicherte Paketdatei von C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wapt
2020-07-02
10:17:11,384 DEBUG Speichert Zertifikatskettenprüfung im Cache
2020-07-02 10:17:11,385 DEBUG Heruntergeladen: {'downloaded': [], 'skipped': [u'C:\\Program Files (x86)\\wapt\\cache\\ophlm-
foxit_10.0.0.35798-11_PREPROD.wapt'], 'errors': [], 'packages': [PackageEntry(u'ophlm-foxit',u'10.0.0.35798-11' maturity
=u'PREPROD')]}
Installation von ophlm-foxit(=10.0.0.35798-11)
2020-07-02 10:17:11,387 INFO Registrierung des Installationsstarts von C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wapt
als Benutzer latijoel Lokale DB mit Parametern {}
2020-07-02 10:17:11,387 INFO Interaktiver Benutzer: latijoel, Benutzergruppen []
2020-07-02 10:17:11,588 INFO Status: Paket ophlm-foxit Version 10.0.0.35798-11 wird installiert ...
2020-07-02 10:17:11,588 DEBUG DB Transaktion gestartet
2020-07-02 10:17:11,588 DEBUG DB Commit
2020-07-02 10:17:11,631 DEBUG DB Transaktion gestartet
2020-07-02 10:17:11,634 DEBUG DB Commit
2020-07-02 10:17:11,674 INFO Die Kontrolldaten für das Paket C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wapt
wurden durch das Zertifikat SSLCertificate cn=domitia verifiziert.
2020-07-02 10:17:11,674 INFO Installation des Pakets C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wapt
2020-07-02
10:17:11,678 INFO Entpacken des Pakets C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wapt
in das Verzeichnis c:\users\latijoel\appdata\local\temp\waptxdg9ol
2020-07-02 10:17:11,993 INFO Paket enthält eine setup.py-Datei, ein Codesignaturzertifikat ist erforderlich.
2020-07-02 10:17:11,996 DEBUG Zertifikat {'countryName': u'FR', 'commonName': u'domitia', 'emailAddress': u'serviceinfo
rmatique@domitia-habitat.fr', 'organizationName': u'Domitia Habitat', 'localityName': u'Narbonne'} wird von der Stammzertifizierungsstelle
domitia
2020-07-02 10:17:11,997 DEBUG Signaturprüfung mit SSLCertificate cn=domitia
2020-07-02 10:17:12,000 DEBUG OK mit SSLCertificate cn=domitia
2020-07-02 10:17:12,000 INFO Paket ausgestellt von {'countryName': u'FR', 'commonName': u'domitia', 'emailAddress': u'servic
einformatique@domitia-habitat.fr', 'organizationName': u'Domitia Habitat', 'localityName': u'Narbonne'}
2020-07-02 10:17:12,325 INFO Entpackte Dateien durch Zertifikat SSLCertificate cn=domitia verifiziert
2020-07-02 10:17:12,325 DEBUG Entferne vorhandenes persistentes Verzeichnis C:\Program Files (x86)\wapt\private\persistent\883da6a5-8
ae2-4477-b9e9-bd9b66350454
2020-07-02 10:17:12,328 INFO Installationsdatei wird geladen c:\users\latijoel\appdata\local\temp\waptxdg9ol\setup.py
2020-07-02 10:17:12,328 DEBUG Import source c:\users\latijoel\appdata\local\temp\waptxdg9ol\setup.py as __waptsetup_qkz8
8wxt4v__
2020-07-02 10:17:12,338 INFO Install parameters: {}
2020-07-02 10:17:12,339 DEBUG DB Start transaction
2020-07-02 10:17:12,342 DEBUG DB commit
2020-07-02 10:17:12,489 INFO execute install script
2020-07-02 10:17:12,503 DEBUG DB Start transaction
2020-07-02 10:17:12,505 DEBUG DB commit
Exe setup FoxitReader_10.0.0.35798_Setup.exe already installed. Überspringen
2020-07-02 10:17:12,542 INFO Datei C:\Users\Public\Desktop\Foxit Reader.lnk existiert nicht, daher nicht entfernt
2020-07-02 10:17:12,543 DEBUG Paket-Temporärverzeichnis wird bereinigt
2020-07-02 10:17:12,559 DEBUG DB Transaktion gestartet
2020-07-02 10:17:12,561 DEBUG DB Commit
2020-07-02 10:17:12,607 DEBUG DB Transaktion gestartet
2020-07-02 10:17:12,608 DEBUG DB Commit
2020-07-02 10:17:12,651 DEBUG DB Transaktion gestartet
2020-07-02 10:17:12,653 DEBUG DB-Commit
2020-07-02 10:17:12,707 DEBUG Modul wird entfernt: __waptsetup_qkz88wxt4v__, Referenzzähler: 4
2020-07-02 10:17:12,776 DEBUG Verfügbarkeit der Host-Pakete "[PackageEntry(u'4C4C4544-0048-5010-8039-B5C04F3333
32',u'4' )]"
geprüft 2020-07-02 10:17:12,778 DEBUG Prüfen, ob 4C4C4544-0048-5010-8039-B5C04F333332(=4) installiert/veraltet ist
2020-07-02 10:17:12,836 DEBUG Speicherstatus in DB
2020-07-02 10:17:12,838 DEBUG DB-Transaktion gestartet
2020-07-02 10:17:12,838 DEBUG DB-Commit
2020-07-02 10:17:12,891 INFO Status:
2020-07-02 10:17:12,894 DEBUG DB-Transaktion gestartet
2020-07-02 10:17:12,894 DEBUG DB-Commit
2020-07-02 10:17:12,937 CRITICAL Paket ophlm-foxit [x64_fr_PROD,PREPROD] aufgrund von Fehlern nicht installiert: IndexError: Tupelindex
außerhalb des gültigen Bereichs
FATAL FEHLER: IndexError: Tupelindex außerhalb des gültigen Bereichs
Traceback (letzter Aufruf):
Datei "
Datei "
Datei "C:\Program Files (x86)\wapt\common.py", Zeile 4855, in install
force=force
Datei "C:\Program Files (x86)\wapt\common.py", Zeile 3934, in install_wapt
raise e
IndexError: tuple index out of range
Exception at 00441CD4: EPyIndexError:
exceptions.IndexError: tuple index out of tidy.

Betreff: IndexError: Tupelindex außerhalb des gültigen Bereichs bei einem einzelnen Beitrag

Veröffentlicht: 2. Juli 2020 - 10:29 Uhr
von jlatieule
Dies zeigt, dass das Posten von Protokollen und die Überprüfung jedes einzelnen Schritts eines Skripts dazu beitragen können, die Ursache des Problems zu finden

Das Problem tritt bei den folgenden Befehlen auf, wenn die Ordner nicht existieren

Code: Alle auswählen

    # Purge des anciens modèles
    remove_tree(r'c:\ProgramData\Foxit Software\Signature')
    remove_tree(r'c:\ProgramData\Foxit Software\UserStamps')
Ist es zwingend erforderlich, die Existenz der zu löschenden Dateien zu überprüfen?

Betreff: IndexError: Tupelindex außerhalb des gültigen Bereichs bei einem einzelnen Beitrag

Veröffentlicht: 2. Juli 2020 – 14:21 Uhr
von jlatieule
Sofern wir die Fehler nicht ignorieren... In diesem Fall wäre ein kleines Beispiel mit häufig verwendeten Funktionen perfekt

Code: Alle auswählen

    # Purge des anciens modèles
    remove_tree(r'c:\ProgramData\Foxit Software\Signature', ignore_errors=True)
    remove_tree(r'c:\ProgramData\Foxit Software\UserStamps', ignore_errors=True)

Betreff: IndexError: Tupelindex außerhalb des gültigen Bereichs bei einem einzelnen Beitrag

Veröffentlicht: 2. Juli 2020 – 17:29 Uhr
von Sfonteneau
Nehmen wir an, `ignore_errors` würde auch einen Löschfehler abfangen...

Es ist jedoch vorzuziehen, auf das Vorhandensein des Ordners zu prüfen.

Betreff: IndexError: Tupelindex außerhalb des gültigen Bereichs bei einem einzelnen Beitrag

Veröffentlicht: 3. Juli 2020 – 14:18 Uhr
von jlatieule
Dumme Frage: Warum ist dieser Test nicht in der Funktion enthalten?

Betreff: IndexError: Tupelindex außerhalb des gültigen Bereichs bei einem einzelnen Beitrag

Veröffentlicht: 3. Juli 2020 – 14:57 Uhr
von Sfonteneau
Wir könnten der Funktion tatsächlich eine Option hinzufügen; es gibt keinen besonderen Grund, warum nicht