Page 1 sur 2
Modèle de script setup.py
Posté : 02 mai 2016 - 22:26
par so37
Bonjour,
J'aimerais avoir un modèle afin d'effectuer :
Verifier si le logiciel est installé sur le poste client, si il est installé, le désinstallé et ensuite l'installé, s'il n'est pas installé, l'installé.
Merci d'avance
Re: Modèle de script setup.py
Posté : 03 mai 2016 - 09:10
par sfonteneau
!!! Compatible uniquement depuis la version 1.3.5 il me semble !!!
Pour installer uniquement si le logiciel n'est pas présent ou que la version est inférieur :
Exe:
Code : Tout sélectionner
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 (plus simple):
Code : Tout sélectionner
def install ():
install_msi_if_needed('install_flash_player_21_active_x.msi',killbefore=['iexplore.exe'])
Dans la plupart des cas une désinstallation avant n'est pas nécessaire, mais pas toujours.
Pour lancer une désinstallation:
Code : Tout sélectionner
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)
Cependant cette méthode peu parfois causer des soucis.
En effet Dans l'exemple on recherche un logiciel avec le nom scribus.
Mais si dans nos logiciel, un logiciel se nomme "Sribus plugin extra"
Et bien celui-ci y passera aussi.
Dans ce cas il faudra rendre le setup.py plus précis
Simon
Re: Modèle de script setup.py
Posté : 03 mai 2016 - 10:05
par so37
Voici mon script afin d'installer Visual Studio 2005 Tools pour Office Second Edition Runtime (vstor2005.exe) :
Code : Tout sélectionner
# -*- 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)
a priori le code fonctionne que si vstor2005 n'est pas installé, par contre quand vstor2005 est déjà installé voici le message d'erreur :
Code : Tout sélectionner
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
Re: Modèle de script setup.py
Posté : 03 mai 2016 - 10:10
par so37
quand je fait un uninstall de ce paquet, il est censé désinstaller avec la commande que
Code : Tout sélectionner
msiexec /qb /uninstall {388E4B09-3E71-4649-8921-F44A3A2954A7}
Re: Modèle de script setup.py
Posté : 03 mai 2016 - 10:28
par sfonteneau
Un problème après l'autre ...
Si aucun min_version n'est renseignée (comme dans votre cas), install_exe_if_needed va lire la version dans les propriétés du fichier exe (si l'exe est bien fait). êtes vous sur de ne pas vouloirs renseignée de min_version ?
Même chose pas d'argument key dans votre commande
Nous verrons la désinstallation plus tard
Re: Modèle de script setup.py
Posté : 03 mai 2016 - 10:38
par so37
je ne sais pas trop a quoi correspond le min_version, mais si il est préférable de le faire pourquoi pas, au niveau de l'exe la version de vstor2005.exe = 8.0.50727.940 est-ce cela qui vous intéresse ??
Re: Modèle de script setup.py
Posté : 03 mai 2016 - 10:44
par so37
voici les modifications faites concernant def install :
Code : Tout sélectionner
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)
Re: Modèle de script setup.py
Posté : 07 mai 2016 - 13:00
par sfonteneau
Une petit erreur a été corrigée dans le setuphelpers.py
https://github.com/tranquilit/WAPT/comm ... 84de4f0488
Il est possible que votre problème venait de la
Simon
Re: Modèle de script setup.py
Posté : 09 mai 2016 - 09:07
par so37
Voici mon modèle pour le moment :
Code : Tout sélectionner
# -*- 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)
Y'a t-il mieux, est-il suffisamment optimisé ??
Re: Modèle de script setup.py
Posté : 11 mai 2016 - 13:52
par so37
EN ayant mis le service WAPTService en administrateur, cava mieux, néanmoins lorsque je met en place le script que j'ai copié ci-dessus voici le message d'erreur :
Code : Tout sélectionner
"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