Buen día,
Gracias por tu ayuda. Solo encuentro el archivo setup.py en la carpeta WAPT\WAPTUPGRADE.
No tengo ningún archivo con ese nombre directamente en el directorio WAPT
Adjunto una imagen de los archivos py ubicados en mi carpeta wapt
Incluyo el contenido del archivo setup.py porque no puedo pegarlo como archivo adjunto
gracias por su ayuda
Knpc

- contenido de la carpeta wapt
- Extensión de archivo py.JPG (43,89 KB) Visto 8919 veces
ARCHIVO SETUP.PY
# -*- codificación: utf-8 -*-
importar desde setuphelpers *
importar sistema operativo
importar _winreg
importar archivo temporal
importar shutil
# clave(s) de registro donde WAPT encontrará cómo eliminar la(s) aplicación(es)
clave de desinstalación = []
def actualizar_fuentes():
archivos = [
'común.py',
'setuphelpers.py',
'wapt-get.exe',
'wapt-get.exe.manifest',
'wapt-get.py',
'waptdevutils.py',
'paquete wapt.py',
'windnsquery.py',
'wapttray.exe',
'waptexit.exe',
'buscador de claves.py',
'COPIANDO.txt',
'plantillas',
'waptconsole.exe',
'waptconsole.exe.manifest',
'servicio wapt',
'idiomas',
r'lib\paquetes-del-sitio\babel\__init__.py',
r'lib\paquetes-del-sitio\babel\_compat.py',
r'lib\paquetes-del-sitio\babel\core.py',
r'lib\paquetes-del-sitio\babel\global.dat',
r'lib\paquetes-del-sitio\babel\localtime',
r'lib\paquetes-del-sitio\babel\plural.py',
r'lib\site-packages\babel\localedata\en.dat',
r'lib\site-packages\babel\localedata\fr.dat',
r'lib\paquetes-del-sitio\babel\mensajes',
r'lib\paquetes-del-sitio\babel\support.py',
r'lib\paquetes-del-sitio\babel\compat.py',
r'lib\paquetes-del-sitio\babel\dates.py',
r'lib\paquetes-del-sitio\babel\localedata.py',
r'lib\paquetes-del-sitio\babel\numbers.py',
r'lib\paquetes-del-sitio\babel\util.py',
r'lib\paquetes-del-sitio\flask_babel',
r'lib\paquetes-del-sitio\pytz',
r'lib\paquetes-del-sitio\speaklater',
r'lib\paquetes-del-sitio\solicitudes_kerberos_sspi',
r'lib\paquetes-del-sitio\lib\paquetes-del-sitio\flask_kerberos_sspi.py',
r'lib\paquetes-del-sitio\kerberos_sspi.py',
r'lib\paquetes-del-sitio\wapt.pth',
]
def ignorar(origen,nombres):
resultado = []
para nombre en nombres:
para el patrón en ['*.pyc','*.exe']:
si glob.fnmatch.fnmatch(nombre,patrón):
resultado.append(nombre)
devolver resultado
directorio_de_compra = os.path.abspath(os.path.join(os.getcwd(),'..'))
# directorio de parches de limpieza
si os.path.exists(os.path.join(checkout_dir,'waptupgrade','patches')):
Shutil.rmtree(os.path.join(checkout_dir,'waptupgrade','parches'))
os.makedirs(os.path.join(checkout_dir,'waptupgrade','parches'))
para f en archivos:
fn = os.path.join(directorio_de_compra,f)
target_fn = os.path.join(checkout_dir,'waptupgrade','patches',f)
si os.path.isfile(fn):
si no os.path.exists(os.path.dirname(target_fn)):
os.makedirs(os.path.dirname(target_fn))
copia de archivo a(fn,target_fn)
elif os.path.isdir(fn):
copytree2(
origen=fn,
dst=función_objetivo,
onreplace = sobrescribir por defecto,
ignorar=ignorar)
devuelve Verdadero
def update_control(entrada):
"""Actualizar el archivo de control del paquete antes de la carga de la compilación"""
si update_sources():
waptget = obtener_propiedades_del_archivo(r'patches\wapt-get.exe')
rev = abrir('../versión').leer().tira()
entrada.paquete = '%s-waptupgrade' % WAPT.config.get('global','prefijo_de_paquete_predeterminado')
entrada.versión = '%s-%s' % (waptget['FileVersion'],rev)
demás:
print(u'Manteniendo los datos de control actuales %s (%s)'%(control.package,control.version))
def update_registry_version(versión):
# actualizar el registro
con _winreg.CreateKeyEx(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WAPT_is1',\
0, _winreg.KEY_READ| _winreg.KEY_WRITE ) como waptis:
reg_setvalue(waptis,"Nombre para mostrar","WAPT %s" % versión)
reg_setvalue(waptis,"DisplayVersion","WAPT %s" % versión)
reg_setvalue(waptis,"Fecha de instalación",fecha actual())
def copytree2(src, dst, ignorar=Ninguno, al reemplazar=saltar_predeterminado, al copiar=al_copiar_predeterminado, habilitar_reemplazar_al_reiniciar=Verdadero, al error=Ninguno):
"""Copiar el directorio src al directorio dst. Dst se crea si no existe
src puede ser relativo al directorio temporal de instalación
Se llama a oncopy para cada copia de archivo. Si se devuelve Falso, se omite la copia
onreplace se llama cuando se sobrescribirá un archivo.
"""
logger.debug('Copiar árbol de "%s" a "%s"' % (ensure_unicode(src),ensure_unicode(dst)))
# ruta relativa al directorio temporal...
directorio temporal = os.getcwd()
si no os.path.isdir(src) y os.path.isdir(os.path.join(tempdir,src)):
src = os.path.join(directorio temporal,src)
nombres = os.listdir(src)
si callable(ignore) e ignorar no es Ninguno:
nombres_ignorados = ignorar(origen, nombres)
demás:
nombres_ignorados = set()
si no os.path.isdir(dst):
si oncopy('crear directorio',src,dst):
os.makedirs(dst)
errores = []
para nombre en nombres:
si el nombre está en nombres ignorados:
continúa
srcname = os.path.join(src, nombre)
dstname = os.path.join(dst, nombre)
intentar:
si os.path.isdir(nombre_origen):
si oncopy('directorio',nombreorigen,nombredst):
copytree2(nombreorigen, nombredst, ignorar = ignorar, alreemplazar=alreemplazar, alcopiar=alcopiar)
demás:
si os.path.isfile(dstname):
si onreplace(srcname,dstname) y oncopy('sobrescribe',srcname,dstname):
os.unlink(nombredst)
Shutil.copy2 (nombre de origen, nombre de destino)
demás:
si oncopy('copia',nombreorigen,nombredst):
Shutil.copy2 (nombre de origen, nombre de destino)
excepto (IOError, os.error) como por qué:
#print(u'IO Error al copiar de "%s" a "%s": %s' % (ensure_unicode(src),ensure_unicode(dst),ensure_unicode(why)))
si onerror no es None y es invocable (onerror):
intentar:
onerror(nombreorigen,nombredst,por qué)
excepto Excepción como e:
errores.append((nombre_origen,nombre_dst,asegurar_unicode(e)))
demás:
errores.append((nombreorigen,nombredst,asegurar_unicode(por qué)))
# capturar el error del copytree recursivo para que podamos
# continuar con otros archivos
excepto shutil.Error como err:
logger.critical(u'shutil Error al copiar de "%s" a "%s": %s' % (ensure_unicode(srcname),ensure_unicode(dstname),ensure_unicode(err)))
errores.extend(err.args[0])
intentar:
shutil.copystat(origen, horario de verano)
Excepto por OSError, ¿por qué?
si WindowsError no es None y isinstance(por qué, WindowsError):
# La copia de los tiempos de acceso a archivos puede fallar en Windows
aprobar
demás:
print(u'Error al copiar estadísticas de "%s" a "%s": %s' % (ensure_unicode(src),ensure_unicode(dst),ensure_unicode(why)))
errores.append((src, dst, str(por qué)))
si hay errores:
generar shutil.Error, errores
def add_at_cmd(cmd,retraso=1):
importar fecha y hora
a_la_hora = (datetime.datetime.now() + datetime.timedelta(minutos=retraso)).strftime('%H:%M:%S')
imprimir(ejecutar('a las %s "%s"'%(a_la_hora,cmd)))
def instalar():
# si desea modificar las claves dependiendo del entorno (win32/win64... parámetros...)
print(u'Actualización parcial del cliente WAPT')
killalltasks('wapttray.exe')
killalltasks('waptconsole.exe')
def onerror(nombreorigen,nombredst,e):
imprimir u"Error %s %s %s" %(nombre_origen,nombre_dst,asegurar_unicode(e))
si e[0] == 5: # bloqueado
filecopyto(nombreorigen,nombredst+'.pendiente')
reemplazar_en_el_próximo_reinicio(Ninguno, nombre_dst)
demás:
elevar e
def check_exe_version(origen,dst):
si os.path.splitext(dst)[1] en ('.exe','.dll'):
intentar:
ov = obtener_propiedades_del_archivo(dst)['Versión del archivo']
nv = obtener_propiedades_del_archivo(src)['Versión del archivo']
devolver Versión(ov)
excepto:
devuelve Verdadero
demás:
devuelve Verdadero
copytree2('parches',WAPT.wapt_base_dir,
onreplace = comprobar_versión_exe,
onerror = onerror)
actualizar_versión_del_registro(control.versión)
# el reinicio del servicio no puede ser realizado por el servicio...
si el servicio está instalado('waptservice') y el servicio está en ejecución('waptservice'):
solicitudes de importación,json
intentar:
res = json.loads(solicitudes.get('
http://127.0.0.1:8088/waptservicerestart.json').text)
excepto:
tmp_bat = archivo temporal.NamedTemporaryFile(prefijo='waptrestart',sufijo='.cmd',modo='wt',eliminar=Falso)
tmp_bat.write('net stop waptservice\n')
tmp_bat.write('net start waptservice\n')
tmp_bat.write('del "%s"\n'%tmp_bat.name)
tmp_bat.close()
add_at_cmd(tmp_bat.nombre)
print(u'Actualización realizada')