Een fout zoals module 'socks' has no attribute 'create_connection' treedt op vóór een geslaagd proxyverzoek. Begin bij de Python-module die de toepassing importeerde.

import sys
import socks

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

Deze inspectieregels benoemen de interpreter en het geïmporteerde bestand. Lees ze in dezelfde toepassingsomgeving waarin het misgaat. Een terminal met een andere virtuele omgeving kan een ander bestand met dezelfde naam importeren.

Controleer of een lokaal socks.py-bestand of -pakket de bedoelde afhankelijkheid overschaduwt. Het zoekpad voor modules van Python kan dat bestand laten winnen van het geïnstalleerde pakket. Hernoem een toevallige botsing bewust en herstart het proces dat het al heeft geïmporteerd.

De broncode van PySocks bevat zowel set_default_proxy als de compatibele spelling setdefaultproxy, samen met create_connection. Blindelings één spelling wijzigen is dus geen volledige diagnose van een ontbrekend attribuut.

Zodra de geïmporteerde module en versie kloppen, vergelijk de code met de gedocumenteerde API van dat project. Vermijd het handmatig toevoegen van niet-verwante systeembibliotheekmappen aan het zoekpad van Python totdat de import lijkt te werken. Dat kan afhankelijkheidsversies vermengen en de onderliggende omgevingsafwijking onopgelost laten.

Gerelateerde artikelen