Python importerade en annan socks-modul än du förväntade dig
Undersök den importerade modulen innan du behandlar saknade SOCKS-attribut som ett proxy- eller DNS-fel.
Ett fel som module 'socks' has no attribute 'create_connection' uppstår före en lyckad proxybegäran. Börja med den Python-modul som programmet importerade.
import sys
import socks
print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))Dessa inspektionsrader identifierar tolken och den importerade filen. Läs dem i samma programmiljö där felet uppstår. En terminal med en annan virtuell miljö kan importera en annan fil med samma namn.
Kontrollera om en lokal fil eller ett lokalt paket socks.py skymmer det avsedda beroendet. Pythons modulsökväg kan göra att den filen vinner över det installerade paketet. Byt namn på en oavsiktlig kollision medvetet och starta om processen som redan har importerat den.
PySocks källkod innehåller både set_default_proxy och den kompatibla stavningen setdefaultproxy, tillsammans med create_connection. Att blint ändra en stavning är därför inte en fullständig diagnos av ett saknat attribut.
När den importerade modulen och versionen är korrekta, jämför koden med projektets dokumenterade API. Undvik att manuellt lägga till orelaterade systembibliotekskataloger i Pythons sökväg förrän importen verkar fungera. Det kan blanda versioner av beroenden och lämna den underliggande miljöavvikelsen olöst.