Pagina 1 di 1

[RISOLTO] [Errore 145] La directory non è vuota

Pubblicato: 10 luglio 2019 - 11:19
di erickeke
Ciao,

durante l'installazione dei pacchetti ricevo spesso questo tipo di messaggio:

[Errore 145] La directory non è vuota: 'c:\\users\\admin\\appdata\\local\\temp\\waptvqjgz'.

Devo aggiungere un time.sleep(5) per evitare l'errore.

Non posso dire con certezza se accade ogni volta che utilizzo la stessa funzione: nel caso sopra:
install_exe_if_needed("setup-gprolog-1.4.5-msvc-x64.exe",'/VERYSILENT /SUPPRESSMSGBOXES /NORESTART',key='GNU Prolog_is1',min_version='1.4.5').

Si verifica sistematicamente con questo programma di installazione; se lo disinstallo e lo reinstallo, succede la stessa cosa.

Tuttavia, la cartella viene infine eliminata da temp.

Non ho software antivirus sulla mia macchina di test, che esegue Windows 7 a 64 bit e utilizza il client Wapt versione 1.7.3.5.

Non è niente di grave; non si tratta di un bug importante. ;-)

Cordiali saluti.

Re: [Errore 145] La directory non è vuota

Pubblicato: 11 luglio 2019 - 11:29
di dcardon
Ciao Erickeke,
erickeke ha scritto: 10 lug 2019 - 11:19 Quando installo i pacchetti, ricevo spesso questo tipo di messaggio:

[Errore 145] La directory non è vuota: 'c:\\users\\admin\\appdata\\local\\temp\\waptvqjgz'

Devo aggiungere un time.sleep(5) per evitare l'errore.

Non posso dire con certezza se accade ogni volta usando la stessa funzione: nel caso sopra:
install_exe_if_needed("setup-gprolog-1.4.5-msvc-x64.exe",'/VERYSILENT /SUPPRESSMSGBOXES /NORESTART',key='GNU Prolog_is1',min_version='1.4.5')

Succede sistematicamente con questo programma di installazione; se lo rimuovo e lo reinstallo, succede la stessa cosa.

Tuttavia, la cartella viene infine eliminata dalla directory temporanea.

Non ho un software antivirus sul mio computer di prova, che esegue Windows 7 a 64 bit e utilizza il client Wapt versione 1.7.3.5.

Non è un grosso problema; non si tratta di un bug importante. ;-)
Probabilmente il programma di installazione deve creare file temporanei nella directory in cui è decompresso il pacchetto.

In effetti, la directory temporanea wapt (in questo caso c:\\users\\admin\\appdata\\local\\temp\\waptvqjgz, con prefisso wapt e un suffisso casuale) viene creata durante l'installazione per decomprimere il contenuto del pacchetto WAPT. Successivamente, WAPT esegue lo script Python setup.py. Se, in setup.py, si richiama un programma di installazione che decomprime nella directory corrente e poi elimina i file un po' troppo tardi dopo la chiusura dell'eseguibile, credo che si possa verificare il problema descritto.

L'opzione che stai suggerendo, ovvero l'aggiunta di sleep(5), dovrebbe dare a setup.exe il tempo di ripulire (anche se ha già restituito il controllo a run()...). La creazione di pacchetti non è una scienza esatta :-)

Sinceramente,

Denis

Re: [Errore 145] La directory non è vuota

Pubblicato: 12 luglio 2019 - 13:34
di dcardon
dcardon ha scritto: 11 luglio 2019 - 11:29 Ciao Erickeke,
erickeke ha scritto: 10 lug 2019 - 11:19 Quando installo i pacchetti, ricevo spesso questo tipo di messaggio:

[Errore 145] La directory non è vuota: 'c:\\users\\admin\\appdata\\local\\temp\\waptvqjgz'

Devo aggiungere un time.sleep(5) per evitare l'errore.

Non posso dire con certezza se accade ogni volta usando la stessa funzione: nel caso sopra:
install_exe_if_needed("setup-gprolog-1.4.5-msvc-x64.exe",'/VERYSILENT /SUPPRESSMSGBOXES /NORESTART',key='GNU Prolog_is1',min_version='1.4.5')

Succede sistematicamente con questo programma di installazione; se lo rimuovo e lo reinstallo, succede la stessa cosa.

Tuttavia, la cartella viene infine eliminata dalla directory temporanea.

Non ho un software antivirus sul mio computer di prova, che esegue Windows 7 a 64 bit e utilizza il client Wapt versione 1.7.3.5.

Non è un grosso problema; non si tratta di un bug importante. ;-)
Probabilmente il programma di installazione deve creare file temporanei nella directory in cui è decompresso il pacchetto.

...
Riflettendoci, questo caso potrebbe essere gestito all'interno del framework di installazione standard di WAPT. Se la directory non è vuota e l'eliminazione fallisce, aspettiamo 5 secondi e riproviamo. Se il problema persiste anche la seconda volta, lo contrassegniamo come errore; in caso contrario, l'eliminazione della directory avviene correttamente.

Vedremo se integrarlo in una versione futura.

Sinceramente,

Denis Cardon

Re: [RISOLTO] [Errore 145] La directory non è vuota

Pubblicato: 4 settembre 2019 - 19:35
di erickeke
Grazie, scusa se non ho risposto, non avevo visto il tuo messaggio.. :-)