Python importoval jiný modul socks, než jste čekali
Prohlédněte importovaný modul, než chybějící atributy SOCKS označíte za selhání proxy nebo DNS.
Chyba jako module 'socks' has no attribute 'create_connection' nastává před úspěšným požadavkem přes proxy. Začněte modulem Python, který aplikace importovala.
import sys
import socks
print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))Tyto kontrolní řádky určují interpret a importovaný soubor. Čtěte je ve stejném prostředí aplikace, kde selhává. Terminál s jiným virtuálním prostředím může importovat jiný soubor se stejným názvem.
Zkontrolujte, zda místní soubor nebo balíček socks.py nezastíní zamýšlenou závislost. Cesta hledání modulů v Pythonu může způsobit, že tento soubor zvítězí nad nainstalovaným balíčkem. Náhodnou kolizi vědomě přejmenujte a restartujte proces, který jej už importoval.
Zdrojový kód PySocks obsahuje jak set_default_proxy, tak kompatibilní zápis setdefaultproxy, spolu s create_connection. Slepá změna jednoho zápisu tedy není úplnou diagnózou chybějícího atributu.
Jakmile jsou importovaný modul a verze správné, porovnejte kód s dokumentovaným API daného projektu. Vyhněte se ručnímu přidávání nesouvisejících adresářů systémových knihoven do vyhledávací cesty Pythonu, dokud se import nezdá funkční. Může to smíchat verze závislostí a ponechat základní nesoulad prostředí nevyřešený.