Python importavo kitą socks modulį, nei tikėjotės
Patikrinkite importuotą modulį, prieš laikydami trūkstamus SOCKS atributus proxy ar DNS gedimu.
Klaida, pavyzdžiui, module 'socks' has no attribute 'create_connection', atsiranda prieš sėkmingą proxy užklausą. Pradėkite nuo Python modulio, kurį importavo programa.
import sys
import socks
print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))Šios patikros eilutės nurodo interpretatorių ir importuotą failą. Skaitykite jas toje pačioje programos aplinkoje, kurioje kyla gedimas. Terminalas su kita virtualia aplinka gali importuoti kitą to paties pavadinimo failą.
Patikrinkite, ar vietinis socks.py failas ar paketas neužstoja numatytos priklausomybės. Python modulių paieškos kelias gali leisti tam failui nugalėti įdiegtą paketą. Sąmoningai pervadinkite atsitiktinį susidūrimą ir iš naujo paleiskite procesą, kuris jau jį importavo.
PySocks šaltinyje yra ir set_default_proxy, ir suderinama rašyba setdefaultproxy, taip pat create_connection. Todėl aklai pakeisti vieną rašybą nėra išsami trūkstamo atributo diagnostika.
Kai importuotas modulis ir versija yra teisingi, palyginkite kodą su to projekto dokumentuotu API. Venkite rankiniu būdu pridėti nesusijusių sistemos bibliotekų katalogų prie Python paieškos kelio, kol importavimas neatrodo veikiantis. Tai gali sumaišyti priklausomybių versijas ir palikti esminį aplinkos neatitikimą neišspręstą.