Seite 1 von 2
setup.py-Skriptvorlage
Veröffentlicht: 2. Mai 2016 - 22:26 Uhr
von so37
Hallo,
ich benötige eine Vorlage für folgende Schritte:
Prüfen, ob die Software auf dem Client-Rechner installiert ist; falls ja, deinstallieren und anschließend neu installieren; falls nein, installieren.
Vielen Dank im Voraus.
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 3. Mai 2016 - 09:10 Uhr
von Sfonteneau
!!! Kompatibel nur ab Version 1.3.5, glaube ich !!!
Nur zu installieren, wenn die Software nicht vorhanden oder die Version älter ist:
Exe:
Code: Alle auswählen
def install ():
install_exe_if_needed('vlc-2.2.2-win32.exe',silentflags='/S --no-qt-privacy-ask --no-qt-updates-notif',key='VLC media player',min_version='2.2.2',killbefore=['vlc.exe'],accept_returncodes=[0],timeout=300)
MSI (einfacher):
Code: Alle auswählen
def install ():
install_msi_if_needed('install_flash_player_21_active_x.msi',killbefore=['iexplore.exe'])
In den meisten Fällen ist eine vorherige Deinstallation nicht erforderlich, aber nicht immer.
So starten Sie eine Deinstallation:
Code: Alle auswählen
softname = 'Scribus'
versionsoft = '15.007.20033'
check_installed_soft = installed_softwares(softname)
if check_installed_soft:
for uninstall in check_installed_soft:
if Version(uninstall['version']) < Version(versionsoft):
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
Diese Methode kann jedoch manchmal Probleme verursachen.
In unserem Beispiel suchen wir tatsächlich nach einer Software mit dem Namen Scribus.
Aber wenn in unserer Software ein Programm "Sribus plugin extra" heißt
Nun, dieser hier wird das auch durchmachen.
In diesem Fall muss die setup.py-Datei genauer spezifiziert werden
Simon
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 3. Mai 2016 - 10:05 Uhr
von so37
Hier ist mein Skript zur Installation der Visual Studio 2005 Tools for Office Second Edition Runtime (vstor2005.exe):
Code: Alle auswählen
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = ["{388E4B09-3E71-4649-8921-F44A3A2954A7}"]
uninstallstring = ['msiexec /qb /uninstall {388E4B09-3E71-4649-8921-F44A3A2954A7}']
def install ():
install_exe_if_needed('vstor2005.exe', '/q',accept_returncodes=[0],timeout=300)
def uninstall():
softname = 'Visual Studio 2005 Tools pour Office Second Edition Runtime'
versionsoft = '8.0.50727.940'
check_installed_soft = installed_softwares(softname)
if check_installed_soft:
for uninstall in check_installed_soft:
if uninstall['version'] == versionsoft:
cmd = 'msiexec /qb /uninstall {388E4B09-3E71-4649-8921-F44A3A2954A7}'
run(cmd)
Der Code scheint nur dann zu funktionieren, wenn vstor2005 nicht installiert ist; wenn vstor2005 jedoch bereits installiert ist, erscheint folgende Fehlermeldung:
Code: Alle auswählen
C:\Windows\system32>wapt-get install C:\Users\x\Desktop\Nuxeo\enm
-vstor2005
Installing WAPT file C:\Users\x\Desktop\Nuxeo\enm-vstor2005
2016-05-03 10:13:38,529 CRITICAL Fatal error in install script: EWaptSetupExcept
ion: Fatal error : Setup vstor2005.exe has been and uninstall key None found but
version is not good:
Traceback (most recent call last):
File "C:\wapt\common.py", line 3178, in install_wapt
exitstatus = setup.install()
File "C:\Users\x\Desktop\Nuxeo\enm-vstor2005\setup.py", line 8,
in install
install_exe_if_needed('vstor2005.exe','/q',accept_returncodes=[0],timeout=30
0)
File "C:\wapt\setuphelpers.py", line 3416, in install_exe_if_needed
error('Setup %s has been and uninstall key %s found but version is not good'
% (exe,key))
File "C:\wapt\setuphelpers.py", line 3524, in error
raise EWaptSetupException(u'Fatal error : %s' % reason)
EWaptSetupException: Fatal error : Setup vstor2005.exe has been and uninstall ke
y None found but version is not good
FATAL ERROR : EWaptSetupException: Fatal error : Setup vstor2005.exe has been an
d uninstall key None found but version is not good
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 3. Mai 2016 - 10:10 Uhr
von so37
Wenn ich dieses Paket deinstalliere, sollte die Deinstallation mit folgendem Befehl erfolgen:
Code: Alle auswählen
msiexec /qb /uninstall {388E4B09-3E71-4649-8921-F44A3A2954A7}
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 3. Mai 2016 - 10:28 Uhr
von Sfonteneau
Ein Problem jagt das nächste …
Wenn keine Mindestversionsnummer angegeben ist (wie in Ihrem Fall), liest `install_exe_if_needed` die Version aus den Eigenschaften der ausführbaren Datei (sofern diese korrekt formatiert ist). Sind Sie sicher, dass Sie keine Mindestversionsnummer angeben möchten?
Außerdem fehlt in Ihrem Befehl das Argument `key`.
Die Deinstallation behandeln wir später.
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 3. Mai 2016 - 10:38 Uhr
von so37
Ich bin mir nicht ganz sicher, was mit min_version gemeint ist, aber wenn es vorzuziehen ist, warum nicht? Die Version der ausführbaren Datei vstor2005.exe ist 8.0.50727.940. Ist das die Version, die Sie suchen?
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 3. Mai 2016 - 10:44 Uhr
von so37
Hier die Änderungen bezüglich def install:
Code: Alle auswählen
def install ():
install_exe_if_needed('vstor2005.exe','/q',min_version='8.0.50727.940',key='Visual Studio 2005 Tools pour Office Second Edition Runtime',accept_returncodes=[0],timeout=300)
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 7. Mai 2016 - 13:00 Uhr
von Sfonteneau
In setuphelpers.py
(https://github.com/tranquilit/WAPT/comm ... 84de4f0488) wurde ein kleiner Fehler behoben. Möglicherweise rührte dein Problem daher, Simon.
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 9. Mai 2016 - 09:07 Uhr
von so37
Hier ist mein aktuelles Modell:
Code: Alle auswählen
# -*- coding: utf-8 -*-
import subprocess
from setuphelpers import *
import os
import time
import platform
uninstallkey = []
uninstallstring = ['msiexec /qb /uninstall {B0E8A140-26FA-43C7-AA0F-03691E6DBB02}']
def install():
global uninstallkey
from common import Wapt
softname = 'Nuxeo MSIE Browser Extension'
versionsoft = '2.1.3'
check_installed = installed_softwares(softname)
# si cette liste globale n est pas vide, on check chaque logiciel
if check_installed:
# boucle pour chaque logiciel trouvée
for uninstall in check_installed:
cmd = "msiexec /qb /uninstall {B0E8A140-26FA-43C7-AA0F-03691E6DBB02}"
run(cmd)
if iswin64():
killalltasks('iexplore.exe')
run("Nuxeo-MSIEBrowserExtension.msi /quiet /norestart")
else:
killalltasks('iexplore.exe')
print run("Nuxeo-MSIEBrowserExtension.msi /quiet /norestart")
def uninstall():
softname = 'Nuxeo MSIE Browser Extension'
versionsoft = '2.1.3'
check_installed = installed_softwares(softname)
# si cette liste globale n est pas vide, on check chaque logiciel
if check_installed:
# boucle pour chaque logiciel trouvée
for uninstall in check_installed:
cmd = "msiexec /qb /uninstall {B0E8A140-26FA-43C7-AA0F-03691E6DBB02}"
run(cmd)
Gibt es eine bessere Option? Ist sie ausreichend optimiert?
Betreff: Setup.py-Skriptvorlage
Veröffentlicht: 11. Mai 2016 - 13:52 Uhr
von so37
Nachdem ich dem WAPT-Dienst Administratorrechte zugewiesen hatte, verbesserte sich die Situation; wenn ich jedoch das oben kopierte Skript ausführe, erhalte ich die folgende Fehlermeldung:
Code: Alle auswählen
"id" "description" "summary" "start_date" "logs"
10 Installation of test-nuxeobrowser (=2.1.3-6) (task #10) Exception: Error during install of test-nuxeobrowser (=2.1.3-6): errors in packages test-nuxeobrowser 2016-05-11T13:51:41.573000 Installing test-nuxeobrowser
Exception: Error during install of test-nuxeobrowser (=2.1.3-6): errors in packages test-nuxeobrowser
Traceback (most recent call last):
File "C:\wapt\waptservice\waptservice.py", line 2063, in run
self.running_task.run()
File "C:\wapt\waptservice\waptservice.py", line 1323, in pwrapper
return func(*arg, **kwargs)
File "C:\wapt\waptservice\waptservice.py", line 1383, in run
self._run()
File "C:\wapt\waptservice\waptservice.py", line 1807, in _run
','.join([ p[1].package for p in self.result['errors']]),
Exception: Error during install of test-nuxeobrowser (=2.1.3-6): errors in packages test-nuxeobrowser