Python je uvezao drugi modul socks nego što ste očekivali
Pregledajte uvezeni modul prije nego nedostajuće SOCKS atribute pripišete kvaru proxyja ili DNS-a.
Greška poput module 'socks' has no attribute 'create_connection' javlja se prije uspješnog proxy zahtjeva. Počnite s Python modulom koji je aplikacija uvezla.
import sys
import socks
print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))Ovi redovi provjere pokazuju interpreter i uvezenu datoteku. Čitajte ih u istom aplikacijskom okruženju u kojem dolazi do kvara. Terminal s drugim virtualnim okruženjem može uvesti drugu datoteku istog naziva.
Provjerite zasjenjuje li lokalna datoteka ili paket socks.py željenu zavisnost. Pythonova putanja pretrage modula može dati toj datoteci prednost pred instaliranim paketom. Namjerno preimenujte slučajni sukob i ponovno pokrenite proces koji ga je već uvezao.
Izvorni kod PySocksa sadrži i set_default_proxy i kompatibilni zapis setdefaultproxy, zajedno s create_connection. Zato nasumična promjena jednog zapisa nije potpuna dijagnoza nedostajućeg atributa.
Kada su uvezeni modul i verzija ispravni, uporedite kod s dokumentiranim API-jem tog projekta. Izbjegavajte ručno dodavanje nepovezanih direktorija sistemskih biblioteka u Pythonovu putanju pretrage dok se uvoz ne počne činiti ispravnim. To može pomiješati verzije zavisnosti i ostaviti osnovnu neusklađenost okruženja neriješenom.