שגיאה כמו module 'socks' has no attribute 'create_connection' מתרחשת לפני שמוצלחת בקשת proxy. התחילו במודול ה-Python שהאפליקציה ייבאה.

import sys
import socks

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

שורות הבדיקה האלה מזהות את המפרש ואת הקובץ המיובא. קראו אותן באותה סביבת אפליקציה שבה נכשל התהליך. מסוף שמשתמש בסביבה וירטואלית אחרת עלול לייבא קובץ אחר באותו שם.

בדקו אם קובץ או חבילת socks.py מקומיים מסתירים את התלות המיועדת. נתיב החיפוש של מודולים ב-Python יכול לגרום לאותו קובץ לנצח את החבילה המותקנת. שנו את השם של התנגשות מקרית במכוון והפעילו מחדש את התהליך שכבר ייבא אותו.

קוד המקור של PySocks מכיל גם את set_default_proxy וגם את הכתיב התאימות setdefaultproxy, יחד עם create_connection. לכן החלפה עיוורת של כתיב אחד אינה אבחון מלא של תכונה חסרה.

לאחר שהמודול המיובא והגרסה נכונים, השוו את הקוד ל-API המתועד של אותו פרויקט. הימנעו מהוספה ידנית של תיקיות ספריות מערכת לא קשורות לנתיב החיפוש של Python עד שהייבוא ייראה עובד. זה עלול לערבב גרסאות תלות ולהשאיר את אי-ההתאמה הבסיסית של הסביבה ללא פתרון.

מאמרים קשורים