• # désinstaller sans distutils

    Posté par . En réponse au message setup.py : liste des fichiers qui vont être installés. Évalué à 1.

    Effectivement, la commande uninstall manque cruellement dans distutils (ça revient fréquemment dans les forums).
    Je ne crois pas qu'il y ait moyen de lister les fichiers sans installer. J'ai essayé avec l'option supplémentaire --dry-run mais il n'écrit pas non plus la liste des fichiers.

    Une autre possibilité est d'utiliser le module site, qui permet de connaître les chemins d'installation possibles.

    Un script de désinstallation ressemblerait à ça :

    import site, os
    from shutil import rmtree
    for path in site.getsitepackages():
     lib_path = path + '/dchars'
     egg_info_path = lib_path + '-<version>.egg-info'
     if os.path.exists(lib_path):
     print 'Remove ' + lib_path
     rmtree(lib_path)
     if os.path.exists(egg_info_path):
     print 'Remove ' + egg_info_path
     remove(egg_info_path)

    À adapter, et éventuellement à intégrer à setup.py.
    Je reconnais que ce n'est pas très propre, c'est juste une idée comme ça.
    L'idéal, évidemment, serait de l'intégrer directement au paquet distutils (mais ce serait sûrement fait différemment) !...

    NB : Je ne vois pas comment retrouver le chemin d'installation d'un script (/usr/local/bin en général), mais visiblement il n'y en a pas dans le cas de dchars.