En fejl som module 'socks' has no attribute 'create_connection' opstår, før en vellykket proxy-anmodning. Start med det Python-modul, som applikationen importerede.

import sys
import socks

print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))

Disse inspektionslinjer identificerer fortolkeren og den importerede fil. Læs dem i det samme applikationsmiljø, hvor det fejler. En terminal med et andet virtuelt miljø kan importere en anden fil med samme navn.

Kontroller, om en lokal fil eller pakke socks.py skygger for den tilsigtede afhængighed. Pythons modulsøgesti kan få den fil til at vinde over den installerede pakke. Omdøb et utilsigtet sammenstød bevidst, og genstart den proces, der allerede har importeret det.

PySocks’ kildekode indeholder både set_default_proxy og den kompatible stavemåde setdefaultproxy samt create_connection. Blindt at ændre én stavemåde er derfor ikke en fuld diagnose af et manglende attribut.

Når det importerede modul og versionen er korrekte, sammenlign koden med projektets dokumenterede API. Undgå manuelt at føje ikke-relaterede systembiblioteksmapper til Pythons søgesti, før importen ser ud til at virke. Det kan blande afhængighedsversioner og efterlade den underliggende miljøuoverensstemmelse uløst.

Relaterede artikler