[Risolto] Spostamento del collegamento sul desktop

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
Gaeldi
Messaggi: 254
Registrazione: 22 nov 2015 - 08:37

22 novembre 2015 - 8:43

Buongiorno,

Dopo aver installato Stellarium, vorrei spostare il collegamento predefinito sul desktop in una sottocartella (dopo aver verificato che esista già). Purtroppo, quando eseguo il comando build-upload, ricevo i seguenti messaggi: FATAL ERROR: IOError: [Errno 2] No such file or directory...

Ecco un estratto del codice:

Codice: Seleziona tutto

if isdir("c:\Users\Public\Desktop\Logiciels\Physique-Chimie\""):
    if isfile("c:\Users\Public\Desktop\Stellarium.lnk"):
        print ('Déplacement du raccourci Stellarium')
        shutil.move("c:\Users\Public\Desktop\Stellarium.lnk","c:\Users\Public\Desktop\Logiciels\Physique-Chimie\Stellarium.lnk")
Il build-upload funziona se creo il file c:\Users\Public\Desktop\Logiciels\Physique-Chimie\Stellarium.lnk sul mio PC, ma è possibile evitare questo tipo di errore modificando il codice?
Allegati
errore.jpg
error.jpg (103,07 KB) Visualizzato 5759 volte
Ultima modifica di gaelds il 23 novembre 2015 alle 12:40, modificato 1 volta.
Gaeldi
Messaggi: 254
Registrazione: 22 nov 2015 - 08:37

22 novembre 2015 - 9:35

Un altro problema è che la scorciatoia non viene spostata quando testo il pacchetto. C'è un errore nel codice? Ho provato ad aggiungere una pausa di 30 secondi con `time.sleep(30)` prima di iniziare lo spostamento, ma anche questo non ha funzionato.
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

23 novembre 2015 - 09:07

aggiungere caratteri "r" (stringa grezza) in modo che Python non interpreti \

Codice: Seleziona tutto

if isdir(r"c:\Users\Public\Desktop\Logiciels\Physique-Chimie"):
    if isfile(r"c:\Users\Public\Desktop\Stellarium.lnk"):
        print (u'Déplacement du raccourci Stellarium')
        shutil.move(r"c:\Users\Public\Desktop\Stellarium.lnk",r"c:\Users\Public\Desktop\Logiciels\Physique-Chimie\Stellarium.lnk")
per migliorare la portabilità,

Codice: Seleziona tutto

if isdir(makepath(common_desktop(),'Logiciels','Physique-Chimie')) and isfile(common_desktop(),'Stellarium.lnk'):
        print(u'Déplacement du raccourci Stellarium')
        shutil.move(makepath(common_desktop(),'Stellarium.lnk'),makepath(common_desktop(),'Logiciels','Physique-Chimie','Stellarium.lnk'))
Tranquillo IT
Gaeldi
Messaggi: 254
Registrazione: 22 nov 2015 - 08:37

23 novembre 2015 - 09:23

Grazie mille! Lo proverò presto. Il secondo codice dovrebbe funzionare anche su XP?
Gaeldi
Messaggi: 254
Registrazione: 22 nov 2015 - 08:37

23 novembre 2015 - 11:30

Mi dispiace, sembra che non funzioni; il collegamento rimane sul desktop. Il fatto che l'utente (studente) non abbia i permessi di scrittura sulla cartella dei collegamenti potrebbe causare l'errore seguente?
Immagine
Avatar utente
htouvet
Esperto WAPT
Messaggi: 436
Registrazione: 16 marzo 2015 - 10:48
Contatto:

23 novembre 2015 - 12:09

La procedura `install ext` è stata eseguita con l'account di sistema. Pertanto, non ci sono problemi di autorizzazioni.
La funzione `shutil.move` presuppone che la destinazione non esista.

Quindi, è necessario verificare che il file di destinazione non esista... (`isfile`).
Verificare inoltre che la cartella esista; in caso contrario, crearla (`mkdirs`).
Tranquillo IT
Gaeldi
Messaggi: 254
Registrazione: 22 nov 2015 - 08:37

23 novembre 2015 - 12:39

Alla fine ci sono riuscito; il comando `makepath` mancava da `isfile`. Di seguito è riportato il codice che funziona su Windows 7 (non testato su XP). Non so se la parte di disinstallazione sia necessaria...?

Codice: Seleziona tutto

if iswin64():
 uninstallkey = ["Stellarium_is1"]
 print ("Fermeture de Stellarium")
 killalltasks('Stellarium.exe')
 print('installation de dst-stellarium 64bits')
 run(r'"stellarium-0.14.0-win64.exe" /VERYSILENT')
 print ("Pause de 15sec.")
 time.sleep(15)
 if isdir(makepath(common_desktop(),'Logiciels','Physique-Chimie')) and isfile(makepath(common_desktop(),'Stellarium.lnk')):
    print(u'Déplacement du raccourci Stellarium')
    shutil.move(makepath(common_desktop(),'Stellarium.lnk'),makepath(common_desktop(),'Logiciels','Physique-Chimie','Stellarium.lnk'))
else:
 uninstallkey = ["Stellarium_is1"]
 print ("Fermeture de Stellarium")
 killalltasks('Stellarium.exe')
 print('Installation de dst-stellarium 32bits')
 run(r'"stellarium-0.14.0-win32.exe" /VERYSILENT')
 print ("Pause de 15sec.")
 time.sleep(15)
 if isdir(makepath(common_desktop(),'Logiciels','Physique-Chimie')) and isfile(common_desktop(),'Stellarium.lnk'):
    print(u'Déplacement du raccourci Stellarium')
    shutil.move(makepath(common_desktop(),'Stellarium.lnk'),makepath(common_desktop(),'Logiciels','Physique-Chimie','Stellarium.lnk'))

def uninstall():
 killalltasks('Stellarium.exe')
 print ("Désinstallation de Stellarium")
 if isfile(makepath(common_desktop(),'Logiciels','Physique-Chimie','Stellarium.lnk')):
  remove_file(makepath(common_desktop(),'Logiciels','Physique-Chimie','Stellarium.lnk'))
 if isfile(makepath(common_desktop(),'Stellarium.lnk')):
  remove_file(makepath(common_desktop(),'Stellarium.lnk'))
 return (0);
Grazie per l'aiuto!
Bloccato