Buongiorno,
Grazie per il tuo aiuto. Riesco a trovare il file setup.py solo nella cartella WAPT\WAPTUPGRADE.
Non ho alcun file con quel nome direttamente nella directory WAPT
Allego un'immagine dei file py che si trovano nella mia cartella wapt
Includo il contenuto del file setup.py perché non posso incollarlo come allegato
grazie per l'aiuto
Knpc

- contenuto della cartella wapt
- Estensione file py.JPG (43,89 KB) Visualizzato 8903 volte
FILE SETUP.PY
# -*- codifica: utf-8 -*-
importa da setuphelpers *
importare il sistema operativo
importa _winreg
importa file temporaneo
importa shutil
# chiave/e di registro in cui WAPT troverà come rimuovere l'applicazione/le applicazioni
chiave di disinstallazione = []
def update_sources():
file = [
'comune.py',
'setuphelpers.py',
'wapt-get.exe',
'wapt-get.exe.manifest',
'wapt-get.py',
'waptdevutils.py',
'waptpackage.py',
'windnsquery.py',
'wapttray.exe',
'waptexit.exe',
'keyfinder.py',
'COPIA.txt',
'modelli',
'waptconsole.exe',
'waptconsole.exe.manifest',
'waptservice',
'lingue',
r'lib\site-packages\babel\__init__.py',
r'lib\site-packages\babel\_compat.py',
r'lib\site-packages\babel\core.py',
r'lib\site-packages\babel\global.dat',
r'lib\site-packages\babel\localtime',
r'lib\site-packages\babel\plural.py',
r'lib\site-packages\babel\localedata\en.dat',
r'lib\site-packages\babel\localedata\fr.dat',
r'lib\site-packages\babel\messages',
r'lib\site-packages\babel\support.py',
r'lib\site-packages\babel\compat.py',
r'lib\site-packages\babel\dates.py',
r'lib\site-packages\babel\localedata.py',
r'lib\site-packages\babel\numbers.py',
r'lib\site-packages\babel\util.py',
r'lib\site-packages\flask_babel',
r'lib\site-packages\pytz',
r'lib\site-packages\speaklater',
r'lib\site-packages\requests_kerberos_sspi',
r'lib\site-packages\lib\site-packages\flask_kerberos_sspi.py',
r'lib\site-packages\kerberos_sspi.py',
r'lib\site-packages\wapt.pth',
]
def ignore(src,names):
risultato = []
per nome nei nomi:
per il modello in ['*.pyc','*.exe']:
se glob.fnmatch.fnmatch(nome,modello):
risultato.aggiungi(nome)
restituisci il risultato
checkout_dir = os.path.abspath(os.path.join(os.getcwd(),'..'))
# directory delle patch di pulizia
se os.path.exists(os.path.join(checkout_dir,'waptupgrade','patches')):
shutil.rmtree(os.path.join(checkout_dir,'waptupgrade','patches'))
os.makedirs(os.path.join(checkout_dir,'waptupgrade','patch'))
per f nei file:
fn = os.path.join(checkout_dir,f)
target_fn = os.path.join(checkout_dir,'waptupgrade','patch',f)
se os.path.isfile(fn):
se non os.path.exists(os.path.dirname(target_fn)):
os.makedirs(os.path.dirname(target_fn))
filecopyto(fn,target_fn)
elif os.path.isdir(fn):
copytree2(
src=fn,
dst=target_fn,
onreplace = default_overwrite,
ignorare=ignorare)
restituisci Vero
def update_control(voce):
"""Aggiorna il file di controllo del pacchetto prima del caricamento della build"""
se update_sources():
waptget = get_file_properties(r'patches\wapt-get.exe')
rev = open('../versione').read().strip()
entry.package = '%s-waptupgrade' % WAPT.config.get('globale','prefisso_pacchetto_predefinito')
entry.version = '%s-%s' % (waptget['FileVersion'],rev)
altro:
print(u'Mantenimento dei dati di controllo correnti %s (%s)'%(control.package,control.version))
def update_registry_version(versione):
# aggiorna il registro
con _winreg.CreateKeyEx(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WAPT_is1',\
0, _winreg.KEY_READ| _winreg.KEY_WRITE ) come waptis:
reg_setvalue(waptis,"DisplayName","WAPT %s" % versione)
reg_setvalue(waptis,"DisplayVersion","WAPT %s" % versione)
reg_setvalue(waptis,"Data di installazione",datacorrente())
def copytree2(src, dst, ignore=None, onreplace=default_skip, oncopy=default_oncopy, enable_replace_at_reboot=True, onerror=None):
"""Copia la directory src nella directory dst. Se non esiste, viene creata la directory dst
src può essere relativo alla directory temporanea di installazione
oncopy viene chiamato per ogni copia del file. Se viene restituito False, la copia viene saltata
onreplace viene chiamato quando un file verrà sovrascritto.
"""
logger.debug('Copia l'albero da "%s" a "%s"' % (ensure_unicode(src),ensure_unicode(dst)))
# percorso relativo alla directory temporanea...
tempdir = os.getcwd()
se non os.path.isdir(src) e os.path.isdir(os.path.join(tempdir,src)):
src = os.path.join(tempdir,src)
nomi = os.listdir(src)
se callable(ignore) e ignore non è None:
ignored_names = ignore(src, names)
altro:
nomi_ignorati = set()
se non os.path.isdir(dst):
if oncopy('crea directory',src,dst):
os.makedirs(dst)
errori = []
per nome nei nomi:
se il nome è in ignored_names:
continua
srcname = os.path.join(src, nome)
dstname = os.path.join(dst, nome)
Tentativo:
se os.path.isdir(nomesrc):
se oncopy('directory',nomesorgente,nomedst):
copytree2(nomeorigine, nomeorigine, ignora = ignora, sostituisci=sostituisci, copia=copia)
altro:
se os.path.isfile(nome_destinazione):
se onreplace(srcname,dstname) e oncopy('sovrascrive',srcname,dstname):
os.unlink(nome_dst)
shutil.copy2(srcname, dstname)
altro:
se oncopy('copia',nomesorgente,nomedestinazione):
shutil.copy2(srcname, dstname)
eccetto (IOError, os.error) come motivo:
#print(u'IO Errore durante la copia da "%s" a "%s": %s' % (ensure_unicode(src),ensure_unicode(dst),ensure_unicode(why)))
se onerror non è None e callable(onerror):
Tentativo:
onerror(nome sorgente,nome destinazione,perché)
eccetto Eccezione come e:
errori.append((nomesrc,nomedst,garantisci_unicode(e)))
altro:
errori.append((nomesrc,nomedst,assicura_unicode(perché)))
# cattura l'errore dal copytree ricorsivo in modo che possiamo
# continua con altri file
eccetto shutil.Error come err:
logger.critical(u'shutil Errore durante la copia da "%s" a "%s": %s' % (ensure_unicode(srcname),ensure_unicode(dstname),ensure_unicode(err)))
errori.estendere(err.args[0])
Tentativo:
shutil.copystat(src, dst)
A parte OSError, perché?
se WindowsError non è None e isinstance(perché, WindowsError):
# La copia dei tempi di accesso ai file potrebbe non riuscire su Windows
passaggio
altro:
print(u'Errore durante la copia delle statistiche da "%s" a "%s": %s' % (ensure_unicode(src),ensure_unicode(dst),ensure_unicode(why)))
errori.append((src, dst, str(perché)))
se errori:
raise shutil.Errore, errori
def add_at_cmd(cmd,delay=1):
importa data e ora
at_time = (datetime.datetime.now() + datetime.timedelta(minuti=ritardo)).strftime('%H:%M:%S')
stampa(esegui('a %s "%s"'%(at_time,cmd)))
def install():
# se vuoi modificare le chiavi in base all'ambiente (parametri win32/win64...)
print(u'Aggiornamento parziale del client WAPT')
killalltasks('wapttray.exe')
killalltasks('waptconsole.exe')
def onerror(nomesorgente,nomesorgente,e):
stampa u"Errore %s %s %s" %(srcname,dstname,ensure_unicode(e))
se e[0] == 5: # bloccato
filecopyto(nomeorigine,nomedestinazione+'.pending')
replace_at_next_reboot(Nessuno, nome_destinazione)
altro:
alzare e
def check_exe_version(src,dst):
se os.path.splitext(dst)[1] in ('.exe','.dll'):
Tentativo:
ov = get_file_properties(dst)['VersioneFile']
nv = get_file_properties(src)['VersioneFile']
ritorna Versione(ov)
tranne:
restituisci Vero
altro:
restituisci Vero
copytree2('patch',WAPT.wapt_base_dir,
onreplace = check_exe_version,
unerrore = unerrore)
aggiorna_versione_registro(controllo.versione)
# il riavvio del servizio non può essere eseguito dal servizio...
se service_installed('waptservice') e service_is_running('waptservice'):
richieste di importazione, json
Tentativo:
res = json.loads(requests.get('
http://127.0.0.1:8088/waptservicerestart.json').testo)
tranne:
tmp_bat = tempfile.NamedTemporaryFile(prefisso='waptrestart',suffisso='.cmd',modalità='wt',eliminazione=False)
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.name)
print(u'Aggiornamento completato')