Python importou un módulo socks distinto do que esperabas
Inspecciona o módulo importado antes de tratar os atributos SOCKS ausentes como un fallo de proxy ou DNS.
Un erro como module 'socks' has no attribute 'create_connection' prodúcese antes de que unha solicitude de proxy teña éxito. Comeza polo módulo de Python que importou a aplicación.
import sys
import socks
print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))Estas liñas de inspección identifican o intérprete e o ficheiro importado. Léas no mesmo contorno da aplicación onde falla. Unha terminal cun contorno virtual distinto pode importar outro ficheiro co mesmo nome.
Comproba se un ficheiro ou paquete socks.py local está a ocultar a dependencia prevista. A ruta de busca de módulos de Python pode facer que ese ficheiro gañe ao paquete instalado. Renomea deliberadamente a colisión accidental e reinicia o proceso que xa o importou.
O código fonte de PySocks contén tanto set_default_proxy como a grafía de compatibilidade setdefaultproxy, xunto con create_connection. Por tanto, cambiar unha soa grafía ás cegas non é un diagnóstico completo dun atributo ausente.
Unha vez que o módulo importado e a versión sexan correctos, compara o código coa API documentada dese proxecto. Evita engadir a man directorios de bibliotecas do sistema non relacionados á ruta de busca de Python ata que a importación pareza funcionar. Iso pode mesturar versións de dependencias e deixar sen resolver o desaxuste subxacente do contorno.