Bien vu le coup du sleep, c'était bien ça ! Merci !
Maintenant suppression du raccourcis bureau suivant l'os en cours :-)

Cordialement.



De: "Bastien HERMITTE" <bhermitte@b2pweb.com>
À: wapt@lists.tranquil.it
Envoyé: Jeudi 6 Août 2015 10:13:34
Objet: Re: [Wapt] Question d'un newbie python

Bonjour,

Le premier exemple est le bon, le if doit cependant être aligné au même niveau que le try/except pour être intégré à la fonction install().
Vous pouvez essayer de mettre un time.sleep(2) avant la suppression de la DLL pour attendre 2 secondes, en effet celle-ci est peut être encore en cours d'utilisation par le programme d'installation.

Note : vous n'avez pas besoin d'effectuer le os.path.isfile() qui est déjà intégré à la fonction remove_file().

Cordialement,
Bastien HERMITTE

Le 06/08/2015 09:18, Didier Paulin a écrit :
Ha j'avance !  merci pour ton aide, alors quand je fait une update de mon paquet avec ceci :

from setuphelpers import *
import os.path
uninstallkey = ['VLC media player']

def install():
    try:
        install_exe_if_needed('vlc-2.2.1-win32.exe','/S --no-qt-privacy-ask','VLC media player',min_version='2.2.1',killbefore='vlc.exe')
    except:
        killalltasks('vlc.exe')
        print("installing VLC exe")
        run('"vlc-2.2.1-win32.exe" /S  --no-qt-privacy-ask')

if os.path.isfile(makepath(programfiles32 + r'\VideoLAN\VLC','npvlc.dll')):
    remove_file(makepath(programfiles32 + r'\VideoLAN\VLC','npvlc.dll'))

La dll est bien supprimé sur les postes qui ont déjà vlc, par contre sur un nouveau poste vlc s'install mais la dll n'est pas supprimé ??


Et si je fait :

def install():
    try:
        install_exe_if_needed('vlc-2.2.1-win32.exe','/S --no-qt-privacy-ask','VLC media player',min_version='2.2.1',killbefore='vlc.exe')
    except:
        killalltasks('vlc.exe')
        print("installing VLC exe")
        run('"vlc-2.2.1-win32.exe" /S  --no-qt-privacy-ask')
        if os.path.isfile(makepath(programfiles32 + r'\VideoLAN\VLC','npvlc.dll')):
            remove_file(makepath(programfiles32 + r'\VideoLAN\VLC','npvlc.dll'))
 
La dll n'est jamais supprimé, ni sur les postes updater ni sur les nouvelle install...
 
 
Une idée ?

Cordialement.



De: "Bastien HERMITTE" <bhermitte@b2pweb.com>
À: wapt@lists.tranquil.it
Envoyé: Mercredi 5 Août 2015 15:23:05
Objet: Re: [Wapt] Question d'un newbie python

Bonjour,

La fonction makepath n'est pas une fonction standard de python, pour l'utiliser il faut importer les fonctions du setuphelper en haut du script :
from setuphelpers import *

Cela me parait bizarre que votre premier exemple fonctionne car la fonction makepath ne prend que deux paramètres et pas quatre (mais je suis loin d'être expert en python, et je suis toujours en WAPT 1.1.1 donc la fonction a peut être changé depuis).

Je viens de tester ceci et ça fonctionne bien :
remove_file(makepath(programfiles32 + r'\VideoLAN\VLC','npvlc.dll'))
A placer en dessous de la commande d'installation de VLC (run).

Cordialement
Bastien HERMITTE

Le 05/08/2015 15:05, Didier Paulin a écrit :
Quand j’exécute manuellement ceci dans pyscripter  ma dll est bien effacé :

filename = makepath(programfiles32,'videolan','VLC','npvlc.dll')
        if os.path.isfile(filename):
            os.remove(filename)

Mais quand je le rajoute à la fin du script vlc la dll ne s’efface pas à la fin de l'install..

----

Si j’exécute ceci :

filename = makepath(programfiles32+ r'\VideoLAN\VLC','npvlc.dll')
if os.path.isfile(filename):
            os.remove(filename)



merci d'avance

Cordialement.



De: "Bastien HERMITTE" <bhermitte@b2pweb.com>
À: wapt@lists.tranquil.it
Envoyé: Mercredi 5 Août 2015 14:37:00
Objet: Re: [Wapt] Question d'un newbie python

Bonjour,

Le problème est dans la fonction makepath :
filename = makepath(programfiles32 + r'\VideoLAN\VLC','npvlc.dll')
Note : le 'r' avant une chaine permet d'éviter d'avoir à doubler les antislash.

De plus, il existe une fonction déjà toute faite pour la suppression de fichier :
remove_file(filename)
Note : pour voir la source de la fonction remove_file, dans pyscripter, appuie sur Ctrl et clic sur le nom de la fonction

Cordialement,
Bastien HERMITTE

Le 05/08/2015 14:04, Didier Paulin a écrit :
Bonjour à tous, je commence à gratter (un peu) la création de paquet et je n'arrive pas à faire un truc qui doit être tout simple Embarrassé :

Je veux supprimer une dll à la fin d'install de vlc, j'ai modifié le setup.py de cette manière mais ma dll ne veux pas s’effacer.... ami pro-python voyer vous la coquille ?

from setuphelpers import *
import os.path
uninstallkey = ['VLC media player']

def install():
    try:
        install_exe_if_needed('vlc-2.2.1-win32.exe','/S --no-qt-privacy-ask','VLC media player',min_version='2.2.1',killbefore='vlc.exe')
    except:
        killalltasks('vlc.exe')
        print("installing VLC exe")
        run('"vlc-2.2.1-win32.exe" /S  --no-qt-privacy-ask')
        filename = makepath(programfiles32,'videolan','VLC','npvlc.dll')
        if os.path.isfile(filename):
            os.remove(filename)



Cordialement.




_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt


_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt



_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt



_______________________________________________
WAPT mailing list
WAPT@lists.tranquil.it
http://lists.tranquil.it/listinfo/wapt