Pagina 1 di 2

[RISOLTO] Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 6 maggio 2021 - 17:00
di Alann
Buongiorno,

Ho sviluppato un pacchetto per la configurazione post-installazione di Windows sulla mia rete, inizialmente su WAPT 1.8.
L'idea è quella di configurare una workstation appena installata individuandone il nome a partire dal suo indirizzo IP tramite una ricerca DNS inversa.
Per questo utilizzo il modulo dnspython.

Dopo l'aggiornamento a WAPT 2.0, l'installazione restituisce un errore: AttributeError: l'oggetto 'GenericRdata' non ha l'attributo 'target'

Questo errore si riferisce a un pezzo di codice:

Codice: Seleziona tutto

def findmachinename(ip):
    pass
    no = dns.reversename.from_address(ip)
    answers = dns.resolver.query(no, 'PTR')
    for rdata in answers:
        nom = rdata
    nommachine = nom.target[0].decode("utf-8")
    return nommachine
La cosa curiosa è che questo codice funziona perfettamente quando viene eseguito localmente su PyScripter, ma non funziona quando viene distribuito sulle workstation.

Avete qualche idea?

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 7 maggio 2021 - 09:22
di Gaetan
Ciao Alann,
il pacchetto dnspython è importato all'inizio del tuo codice?
Se non funziona, prova magari ad includerlo insieme all'altro pacchetto.

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 7 maggio 2021 - 09:26
di Alann
All'inizio del codice ho un

Codice: Seleziona tutto

import dns.resolver
import dns.reversename
Come posso impacchettarlo insieme al pacco?

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 7 maggio 2021 - 10:42
di Gaetan
È possibile ottenere direttamente l'output dell'errore?

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 7 maggio 2021 - 10:50
di Alann
Ho riavviato l'installazione su una macchina appena installata:

Codice: Seleziona tutto

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\common.py", line 3841, in install_wapt
    setup = import_setup(setup_filename)
  File "C:\Program Files (x86)\wapt\waptutils.py", line 1498, in import_setup
    py_mod = imp.load_source(modulename, setupfilename)
  File "imp.py", line 171, in load_source
  File "<frozen importlib._bootstrap>", line 702, in _load
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 783, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "C:\windows\TEMP\wapt48wx8rls\setup.py", line 5, in <module>
ModuleNotFoundError: No module named 'dns'
ModuleNotFoundError: No module named 'dns'
A quanto pare, devo integrare il modulo dnspython nel pacchetto wapt. Non so come fare...

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 7 maggio 2021 - 15:37
di dcardon
Ciao Alann,
la libreria dnspython non dovrebbe essere molto grande; è meglio includerla nel pacchetto. Puoi scaricare il file zip da https://pypi.org/project/dnspython/#files , quindi estrarre la directory "/dns" e posizionarla nella directory principale del tuo pacchetto accanto a setup.py.
Saluti,
Denis

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 7 maggio 2021 - 15:52
di Alann
Ciao Denis, e grazie per la risposta.

Funziona perfettamente.

La soluzione era così semplice...

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 8 maggio 2021 - 18:47
di Alann
Se dovessi trovare il pelo nell'uovo, ci sarebbe solo un punto:

L'audit sulle macchine restituisce lo stesso messaggio di errore, anche se l'installazione è corretta.

Codice: Seleziona tutto

Audit aborted due to exception: No module named 'dns'

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 19 maggio 2021 - 15:45
di Gaetan
Ciao Alann,

è possibile avere il codice sorgente completo del pacchetto?

Re: Errore del pacchetto dopo l'aggiornamento WAPT 2.0

Pubblicato: 20 maggio 2021 - 09:24
di Alann
Problema risolto.

Si trattava semplicemente di inserire la cartella "dns" del modulo PyDSN nel pacchetto.

Ricordatevi anche di creare una copia del file per aggiungerla alle librerie WAPT dei client; altrimenti, il controllo del pacchetto restituirà un errore.