IndexError: indice di tupla fuori intervallo su un singolo post

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
jlatieule
Messaggi: 59
Registrazione: 3 luglio 2019 - 9:18

2 luglio 2020 - 10:27

Buongiorno,


Ricevo un errore di installazione "IndexError: indice tupla fuori intervallo" su un pacchetto, ma solo su una macchina. Funziona correttamente su altre macchine con Windows 10 e Windows 7 (x86 e x64).
In caso di dubbio, ho reinstallato l'agente dopo aver eliminato tutto.

Ecco lo script in esecuzione con wapt 1.7.4... forse il problema è legato a session_setup():
A proposito, se vuoi aggiungere opzioni per timbri/firme al tuo pacchetto tis-foxit, quello che ho aggiunto funziona bene.

Codice: Seleziona tutto

# -*- 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)
Inoltre, ecco il comando di debug: `wapt-get install ophlm-foxit -ldebug`

2020-07-02 10:17:10,618 DEBUG Codifica predefinita: ascii
2020-07-02 10:17:10,618 DEBUG Impostazione della codifica per stdout e stderr su cp850
2020-07-02 10:17:10,624 DEBUG Percorso Python ['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 Utilizzo della configurazione locale di waptservice C:\Program Files (x86)\wapt\wapt-get.ini
2020-07-02 10:17:10,625 DEBUG File di configurazione: C:\Program Files (x86)\wapt\wapt-get.ini
Utilizzo del file di configurazione: C:\Program Files (x86)\wapt\wapt-get.ini
2020-07-02 10:17:10,628 DEBUG Il thread 1480 si sta connettendo al database wapt
2020-07-02 10:17:10,694 DEBUG Utilizzo del certificato host C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F3
33332.pem per l'autenticazione globale del repository
2020-07-02 10:17:10,723 DEBUG Il thread 1480 si sta connettendo al database wapt
2020-07-02 10:17:10,723 DEBUG Avvio transazione DB
2020-07-02 10:17:10,723 DEBUG DB commit
2020-07-02 10:17:10,782 DEBUG Utilizzo del certificato host C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F3
33332.pem per il repository wapt auth
2020-07-02 10:17:10,901 DEBUG Utilizzo del certificato host C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F3
33332.pem per il repository wapt-host auth
2020-07-02 10:17:10,930 INFO Gruppi utenti:[]
2020-07-02 10:17:10,930 DEBUG Directory base WAPT: C:\Program Files (x86)\wapt
2020-07-02 10:17:10,930 DEBUG Directory cache pacchetti: C:\Program Files (x86)\wapt\cache
2020-07-02 10:17:10,930 DEBUG Versione struttura DB WAPT: 20190606
2020-07-02 10:17:10,930 DEBUG Controllo se è in corso una vecchia installazione
2020-07-02 10:17:10,940 DEBUG Reimposta install_status bloccato nel database
installazione pacchetti WAPT ophlm-foxit
2020-07-02 10:17:10,974 DEBUG Caricamento contesto ssl con cert C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-
B5C04F333332.crt e chiave C:\Program Files (x86)\wapt\private\4C4C4544-0048-5010-8039-B5C04F333332.pem
2020-07-02 10:17:11,178 INFO Utilizza il file del pacchetto memorizzato nella cache da C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-1
1_PREPROD.wapt
2020-07-02 10:17:11,384 DEBUG Memorizza il controllo della catena di certificati nella cache
2020-07-02 10:17:11,385 DEBUG Scaricato: {'scaricato': [], 'saltato': [u'C:\\Program Files (x86)\\wapt\\cache\\ophlm-
foxit_10.0.0.35798-11_PREPROD.wapt'], 'errori': [], 'pacchetti': [PackageEntry(u'ophlm-foxit',u'10.0.0.35798-11' maturità
=u'PREPROD')]}
Installazione di ophlm-foxit(=10.0.0.35798-11)
2020-07-02 10:17:11,387 INFO Registrazione inizio installazione C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PRE
PROD.wapt come utente latijoel nel DB locale con parametri {}
2020-07-02 10:17:11,387 INFO Utente interattivo:latijoel, gruppi di utenti []
2020-07-02 10:17:11,588 INFO Stato: Installazione del pacchetto ophlm-foxit versione 10.0.0.35798-11 ...
2020-07-02 10:17:11,588 DEBUG DB Inizio transazione
2020-07-02 10:17:11,588 DEBUG DB commit
2020-07-02 10:17:11,631 DEBUG DB Inizio transazione
2020-07-02 10:17:11,634 DEBUG DB commit
2020-07-02 10:17:11,674 INFO Dati di controllo per il pacchetto C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wapt
verificati dal certificato SSLCertificate cn=domitia
2020-07-02 10:17:11,674 INFO Installazione del pacchetto C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wapt
2020-07-02
10:17:11,678 INFO Estrazione del pacchetto C:\Program Files (x86)\wapt\cache\ophlm-foxit_10.0.0.35798-11_PREPROD.wap
t nella directory c:\users\latijoel\appdata\local\temp\waptxdg9ol
2020-07-02 10:17:11,993 INFO Il pacchetto ha un setup.py, è richiesto un certificato di firma del codice.
2020-07-02 10:17:11,996 DEBUG Il certificato {'countryName': u'FR', 'commonName': u'domitia', 'emailAddress': u'serviceinfo
rmatique@domitia-habitat.fr', 'organizationName': u'Domitia Habitat', 'localityName': u'Narbonne'} è considerato attendibile dalla CA radice
domitia
2020-07-02 10:17:11,997 DEBUG Verifica della firma con SSLCertificate cn=domitia
2020-07-02 10:17:12,000 DEBUG OK con SSLCertificate cn=domitia
2020-07-02 10:17:12,000 INFO Pacchetto emesso da {'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 File decompressi verificati dal certificato SSLCertificate cn=domitia
2020-07-02 10:17:12,325 DEBUG Rimozione della directory persistente esistente C:\Program Files (x86)\wapt\private\persistent\883da6a5-8
ae2-4477-b9e9-bd9b66350454
2020-07-02 10:17:12,328 INFO sourcing del file di installazione c:\users\latijoel\appdata\local\temp\waptxdg9ol\setup.py
2020-07-02 10:17:12,328 DEBUG Importa sorgente c:\users\latijoel\appdata\local\temp\waptxdg9ol\setup.py come __waptsetup_qkz8
8wxt4v__
2020-07-02 10:17:12,338 INFO Parametri di installazione: {}
2020-07-02 10:17:12,339 DEBUG DB Avvio transazione
2020-07-02 10:17:12,342 DEBUG DB commit
2020-07-02 10:17:12,489 INFO Esecuzione script di installazione
2020-07-02 10:17:12,503 DEBUG DB Avvio transazione
2020-07-02 10:17:12,505 DEBUG DB commit
Installazione file eseguibile FoxitReader_10.0.0.35798_Setup.exe già installato. Salto
2020-07-02 10:17:12,542 INFO Il file C:\Users\Public\Desktop\Foxit Reader.lnk non esiste, quindi non viene rimosso
2020-07-02 10:17:12,543 DEBUG Pulizia della directory tmp del pacchetto
2020-07-02 10:17:12,559 DEBUG DB Inizio transazione
2020-07-02 10:17:12,561 DEBUG DB commit
2020-07-02 10:17:12,607 DEBUG DB Inizio transazione
2020-07-02 10:17:12,608 DEBUG DB commit
2020-07-02 10:17:12,651 DEBUG DB Inizio transazione
2020-07-02 10:17:12,653 DEBUG Commit DB
2020-07-02 10:17:12,707 DEBUG Rimozione del modulo: __waptsetup_qkz88wxt4v__, refcnt: 4
2020-07-02 10:17:12,776 DEBUG Controllo della disponibilità dei pacchetti host "[PackageEntry(u'4C4C4544-0048-5010-8039-B5C04F3333
32',u'4' )]"
2020-07-02 10:17:12,778 DEBUG Controllo se 4C4C4544-0048-5010-8039-B5C04F333332(=4) è installato/obsoleto
2020-07-02 10:17:12,836 DEBUG memorizza lo stato nel DB
2020-07-02 10:17:12,838 DEBUG DB Inizio transazione
2020-07-02 10:17:12,838 DEBUG DB commit
2020-07-02 10:17:12,891 INFO Stato:
2020-07-02 10:17:12,894 DEBUG DB Inizio transazione
2020-07-02 10:17:12,894 DEBUG DB commit
2020-07-02 10:17:12,937 CRITICO Pacchetto ophlm-foxit [x64_fr_PROD,PREPROD] non installato a causa di errori: IndexError:
indice della tupla fuori intervallo
ERRORE FATALE: IndexError: indice della tupla fuori intervallo
Traceback (chiamata più recente):
File "
File "
File "C:\Program Files (x86)\wapt\common.py", riga 4855, in install
force=force
File "C:\Program Files (x86)\wapt\common.py", riga 3934, in install_wapt
raise e
IndexError: indice della tupla fuori intervallo
Eccezione a 00441CD4: EPyIndexError:
exceptions.IndexError: indice della tupla fuori da tidy.
Amministratore di sistema e di rete presso Domitia Habitat
jlatieule
Messaggi: 59
Registrazione: 3 luglio 2019 - 9:18

2 luglio 2020 - 10:29

Ciò dimostra che pubblicare i log e rivedere ogni passaggio di uno script può aiutare a individuare la causa del problema

Il problema si verifica con i seguenti comandi se le cartelle non esistono

Codice: Seleziona tutto

    # Purge des anciens modèles
    remove_tree(r'c:\ProgramData\Foxit Software\Signature')
    remove_tree(r'c:\ProgramData\Foxit Software\UserStamps')
È obbligatorio verificare l'esistenza dei file da eliminare?
Ultima modifica di jlatieule il 2 luglio 2020 alle 14:21, modificato 1 volta.
Amministratore di sistema e di rete presso Domitia Habitat
jlatieule
Messaggi: 59
Registrazione: 3 luglio 2019 - 9:18

2 luglio 2020 - 14:21

A meno che non ignoriamo gli errori... In tal caso, un piccolo esempio che utilizzi le funzioni più comuni sarebbe perfetto

Codice: Seleziona tutto

    # 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)
Amministratore di sistema e di rete presso Domitia Habitat
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

2 luglio 2020 - 17:29

Supponiamo che `ignore_errors` rilevi anche un errore di eliminazione...

È preferibile verificare la presenza della cartella.
jlatieule
Messaggi: 59
Registrazione: 3 luglio 2019 - 9:18

3 luglio 2020 - 14:18

Domanda stupida: perché questo test non è incluso nella funzione?
Amministratore di sistema e di rete presso Domitia Habitat
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

3 luglio 2020 - 14:57

Potremmo effettivamente aggiungere un'opzione alla funzione; non c'è una ragione particolare per cui non farlo
Bloccato