Página 1 de 2

[RESUELTO] Error de paquete tras la actualización de WAPT 2.0

Publicado: 6 de mayo de 2021 - 17:00
por Alann
Buen día,

Desarrollé un paquete para la configuración posterior a la instalación de Windows en mi red, inicialmente en WAPT 1.8.
La idea es configurar una estación de trabajo recién instalada buscando su nombre a partir de su dirección IP mediante una búsqueda DNS inversa.
Para eso, uso el módulo dnspython.

Desde la actualización a WAPT 2.0, la instalación devuelve un error: AttributeError: el objeto 'GenericRdata' no tiene el atributo 'target'

Este error se refiere a un fragmento de código:

Código: Seleccionar todo

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
Lo curioso es que este código funciona perfectamente cuando se ejecuta localmente en PyScripter, pero falla cuando se implementa en estaciones de trabajo.

¿Alguna idea?

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 7 de mayo de 2021 - 09:22
por Gaetan
Hola Alann,
¿el paquete dnspython está importado al principio de tu código?
Si eso no funciona, ¿quizás podrías intentar incluirlo junto con el otro paquete?

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 7 de mayo de 2021 - 09:26
por Alann
Al principio del código tengo un

Código: Seleccionar todo

import dns.resolver
import dns.reversename
¿Cómo lo empaqueto con el paquete?

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 7 de mayo de 2021 - 10:42 a. m.
por Gaetan
¿Es posible obtener la salida de error directamente?

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 7 de mayo de 2021 - 10:50 a. m.
por Alann
Reinicié la instalación en una máquina recién instalada:

Código: Seleccionar todo

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'
Al parecer, necesito integrar el módulo dnspython en el paquete wapt. No sé cómo hacerlo...

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 7 de mayo de 2021 - 15:37
por dcardon
Hola Alann,
la biblioteca dnspython no debería ser muy grande; lo mejor es incluirla en el paquete. Puedes descargar el archivo zip desde https://pypi.org/project/dnspython/#files , luego extraer el directorio "/dns" y colocarlo en el directorio raíz de tu paquete junto a setup.py.
Saludos,
Denis

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 7 de mayo de 2021 - 15:52
por Alann
Hola Denis, y gracias por tu respuesta.

Funciona perfectamente.

La solución era muy sencilla...

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 8 de mayo de 2021 - 18:47
por Alann
Si tuviera que ponerme quisquilloso, sólo diría un punto:

La auditoría de las máquinas arroja el mismo mensaje de error, aunque la instalación es correcta.

Código: Seleccionar todo

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

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 19 de mayo de 2021 - 15:45
por Gaetan
Hola Alann,

¿es posible obtener el código completo del paquete?

Re: Error de paquete tras la actualización de WAPT 2.0

Publicado: 20 de mayo de 2021 - 09:24
por Alann
Problema resuelto.

Simplemente se trataba de colocar la carpeta "dns" del módulo PyDSN en el paquete.

Recuerda también crear un archivo copytree para añadirlo a las bibliotecas WAPT de los clientes; de lo contrario, la auditoría del paquete devolverá un error.