Ein Fehler wie module 'socks' has no attribute 'create_connection' tritt vor einer erfolgreichen Proxy-Anfrage auf. Beginnen Sie mit dem Python-Modul, das die Anwendung importiert hat.

import sys
import socks

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

Diese Prüfzeilen benennen den Interpreter und die importierte Datei. Lesen Sie sie in derselben Anwendungsumgebung, in der der Fehler auftritt. Ein Terminal mit einer anderen virtuellen Umgebung kann eine andere Datei desselben Namens importieren.

Prüfen Sie, ob eine lokale Datei oder ein Paket socks.py die vorgesehene Abhängigkeit verdeckt. Der Modulsuchpfad von Python kann bewirken, dass diese Datei gegenüber dem installierten Paket gewinnt. Benennen Sie eine versehentliche Kollision bewusst um und starten Sie den Prozess neu, der sie bereits importiert hat.

Der Quellcode von PySocks enthält sowohl set_default_proxy als auch die kompatible Schreibweise setdefaultproxy sowie create_connection. Eine Schreibweise blind zu ändern ist daher keine vollständige Diagnose eines fehlenden Attributs.

Sobald importiertes Modul und Version stimmen, vergleichen Sie den Code mit der dokumentierten API des Projekts. Vermeiden Sie es, fremde Systembibliotheksverzeichnisse von Hand in den Suchpfad von Python aufzunehmen, bis der Import zu funktionieren scheint. Das kann Abhängigkeitsversionen vermischen und die eigentliche Umgebungsabweichung ungelöst lassen.

Ähnliche Artikel