[Gelöst] Desktop-Verknüpfung verschieben

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
Gälen
Nachrichten: 254
Anmeldung: 22. November 2015 - 08:37 Uhr

22. November 2015 - 8:43 Uhr

Guten Morgen,

Nach der Installation von Stellarium möchte ich die Standard-Desktopverknüpfung in einen Unterordner verschieben (nachdem ich überprüft habe, ob dieser bereits existiert). Leider erhalte ich beim Ausführen des Befehls `build-upload` folgende Fehlermeldung: FATAL ERROR: IOError: [Errno 2] No such file or directory...

Hier ist der entsprechende Auszug aus dem Code:

Code: Alle auswählen

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")
Der Build-Upload funktioniert, wenn ich die Datei c:\Users\Public\Desktop\Logiciels\Physique-Chimie\Stellarium.lnk auf meinem PC erstelle. Lässt sich dieser Fehler durch eine Codeänderung vermeiden?
Anlagen
Fehler.jpg
error.jpg (103,07 KB) 5918 Mal angesehen
Zuletzt bearbeitet von gaelds am 23. November 2015 um 12:40 Uhr, 1 Mal bearbeitet.
Gälen
Nachrichten: 254
Anmeldung: 22. November 2015 - 08:37 Uhr

22. November 2015 - 9:35 Uhr

Ein weiteres Problem ist, dass die Verknüpfung beim Testen des Pakets nicht verschoben wird. Liegt ein Fehler im Code vor? Ich habe versucht, vor dem Verschieben eine 30-sekündige Pause mit `time.sleep(30)` einzufügen, aber das hat auch nicht funktioniert.
Benutzeravatar
htouvet
WAPT-Experte
Nachrichten: 436
Anmeldung: 16. März 2015 - 10:48 Uhr
Kontakt:

23. November 2015 - 09:07 Uhr

Füge "r"-Zeichen (Rohstring) hinzu, damit Python den Backslash nicht als \ interpretiert

Code: Alle auswählen

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")
um die Tragbarkeit zu verbessern

Code: Alle auswählen

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'))
Ruhige IT
Gälen
Nachrichten: 254
Anmeldung: 22. November 2015 - 08:37 Uhr

23. November 2015 - 09:23 Uhr

Vielen Dank! Ich werde es bald testen. Der zweite Code sollte auch unter XP funktionieren?
Gälen
Nachrichten: 254
Anmeldung: 22. November 2015 - 08:37 Uhr

23. November 2015 - 11:30 Uhr

Es scheint leider nicht zu funktionieren; die Verknüpfung befindet sich weiterhin auf dem Desktop. Könnte der Fehler dadurch verursacht werden, dass der Benutzer (Student) keine Schreibberechtigung für den Verknüpfungsordner hat?
Bild
Benutzeravatar
htouvet
WAPT-Experte
Nachrichten: 436
Anmeldung: 16. März 2015 - 10:48 Uhr
Kontakt:

23. November 2015 - 12:09 Uhr

Die Prozedur `install ext` wurde unter dem Systemkonto ausgeführt. Daher bestehen keine Berechtigungsprobleme.
Die Funktion `shutil.move` geht davon aus, dass das Zielverzeichnis nicht existiert.

Prüfen Sie daher, ob die Zieldatei existiert (`isfile`).
Prüfen Sie außerdem, ob der Ordner existiert; falls nicht, erstellen Sie ihn (`mkdirs`).
Ruhige IT
Gälen
Nachrichten: 254
Anmeldung: 22. November 2015 - 08:37 Uhr

23. November 2015 - 12:39 Uhr

Ich habe es endlich zum Laufen gebracht; der Befehl `makepath` fehlte in `isfile`. Unten ist der Code, der unter Windows 7 funktioniert (nicht unter XP getestet). Ich weiß nicht, ob der Deinstallationsschritt notwendig ist …?

Code: Alle auswählen

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);
Ich danke Ihnen für Ihre Hilfe!
Gesperrt