Un error como module 'socks' has no attribute 'create_connection' aparece antes de que una solicitud de proxy tenga éxito. Empieza por el módulo de Python que importó la aplicación.

import sys
import socks

print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))

Estas líneas de inspección identifican el intérprete y el archivo importado. Léelas en el mismo entorno de la aplicación que falla. Una terminal con otro entorno virtual puede importar otro archivo con el mismo nombre.

Comprueba si un archivo o paquete socks.py local está ocultando la dependencia prevista. La ruta de búsqueda de módulos de Python puede hacer que ese archivo gane al paquete instalado. Renombra deliberadamente la colisión accidental y reinicia el proceso que ya lo importó.

El código fuente de PySocks contiene tanto set_default_proxy como la grafía de compatibilidad setdefaultproxy, junto con create_connection. Por tanto, cambiar una sola grafía a ciegas no es un diagnóstico completo de un atributo ausente.

Cuando el módulo importado y la versión sean correctos, compara el código con la API documentada de ese proyecto. Evita añadir a mano directorios de bibliotecas del sistema no relacionados a la ruta de búsqueda de Python hasta que la importación parezca funcionar. Eso puede mezclar versiones de dependencias y dejar sin resolver el desajuste subyacente del entorno.

Artículos relacionados