Página 1 de 1

Proceso de desinstalación

Publicado: 22 de febrero de 2018 - 19:21
por gvdbe.fr
wapt-get 1.3.13.0

Buenas noches,
creé un paquete que copia un archivo .exe a un directorio sin requerir permisos especiales y luego crea una clave de registro.

Había incluido todos los pasos de desinstalación en el procedimiento "def uninstall()", pero estoy obteniendo un error de "archivo no encontrado".

Cuando comenté mis acciones en "def uninstall", me sorprendió y solo me di cuenta después de que simplemente definir el procedimiento 'uninstall' sin ninguna acción elimina el archivo .exe y la clave de registro, e intenta eliminar el directorio.
¡Me sorprende que el paquete conozca todas estas acciones! Me preguntaba si podría haber una caché del paquete. Purgar con wapt-get clean and update no cambia nada. Purgar el paquete del repositorio tampoco ayuda.

Problema en ambas variantes de mi paquete, con o sin acción en "def uninstall", sigo obteniendo una alerta que hace que el proceso de desinstalación falle, que aún está incompleto, la eliminación del directorio, y aparentemente la desinstalación no puede hacerlo.

Eliminando espacio en disco...
2018-02-22 19:07:34,961 ADVERTENCIA error: (2, 'GetFileVersionInfo:GetFileVersionInfoSize', 'El sistema no puede encontrar el archivo especificado.')
2018-02-22 19:07:34,964 ADVERTENCIA error: (2, 'GetFileVersionInfo:GetFileVersionInfoSize', 'El sistema no puede encontrar el archivo especificado.')
2018-02-22 19:07:34,967 ADVERTENCIA error: (2, 'GetFileVersionInfo:GetFileVersionInfoSize', 'El sistema no puede encontrar el archivo especificado.')
2018-02-22 19:07:34,969 CRÍTICO Error al ejecutar el script de desinstalación: [Errno 2] No existe tal archivo o directorio: 'DiskSpace.exe'
=== Paquetes eliminados ===
en disco
=== Error al eliminar paquetes ===
espacio en disco

Esto es lo que tengo en mi desinstalación:
def uninstall():
print('desinstalando GRDF-DiskSpace')
# killalltasks('DiskSpace.exe')
# registry_delete(HKEY_LOCAL_MACHINE, r'software\Microsoft\Windows\CurrentVersion\Run','DiskSpace')
# time.sleep(5)
# if isdir(DiskSpacePath):
# remove_tree(DiskSpacePath,ignore_errors=True)

¿Alguien tiene alguna idea?

Re: Proceso de desinstalación

Publicado: 23 de febrero de 2018 - 17:15
por gvdbe.fr
De hecho, encontré el problema. Son las funciones makepath las que están causando el problema...
como por ejemplo: makepath('C:\MyDirectory','DiskSpace')

Re: Proceso de desinstalación

Publicado: 23 de febrero de 2018 - 17:29
por htouvet
En Python (y otros lenguajes), el carácter '\' en una cadena permite codificar saltos de línea, por ejemplo, '\n'.

Para evitar que Python interprete las barras invertidas, debe agregar un prefijo 'r' (cadenas sin formato)
Si hay caracteres acentuados, generalmente es necesario especificar una cadena Unicode (prefijo 'u')

Código: Seleccionar todo

makepath(ur'C:\MonRépertoire','DiskSpace')