يظهر خطأ مثل module 'socks' has no attribute 'create_connection' قبل نجاح طلب الوكيل. ابدأ بالوحدة النمطية في 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 حتى يبدو الاستيراد ناجحاً. فقد يخلط ذلك إصدارات التبعيات ويترك عدم تطابق البيئة الأساسي دون حل.

مقالات ذات صلة