Python je uvezao drugi modul socks nego što ste očekivali
Provjerite uvezeni modul prije nego što nedostajuće SOCKS atribute pripišete grešci 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 za provjeru pokazuju interpreter i uvezenu datoteku. Čitajte ih u istom aplikacijskom okruženju u kojem dolazi do greške. Terminal s drugim virtualnim okruženjem može uvesti drugu datoteku istog naziva.
Provjerite da lokalna datoteka ili paket socks.py ne zasjenjuje željenu zavisnost. Pythonova putanja pretrage modula može dati toj datoteci prednost pred instaliranim paketom. Namjerno preimenujte slučajni sukob i ponovo 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 ponašati ispravno. To može pomiješati verzije zavisnosti i ostaviti osnovnu neusklađenost okruženja neriješenom.