Python beklediğinizden farklı bir socks modülü içe aktardı
Eksik SOCKS özniteliklerini proxy veya DNS hatası saymadan önce içe aktarılan modülü inceleyin.
module 'socks' has no attribute 'create_connection' gibi bir hata, başarılı bir proxy isteğinden önce ortaya çıkar. Uygulamanın içe aktardığı Python modülüyle başlayın.
import sys
import socks
print(sys.executable)
print(socks.__file__)
print(getattr(socks, '__version__', 'unknown'))Bu inceleme satırları yorumlayıcıyı ve içe aktarılan dosyayı tanımlar. Bunları hatanın oluştuğu aynı uygulama ortamında okuyun. Farklı bir sanal ortam kullanan terminal, aynı ada sahip başka bir dosyayı içe aktarabilir.
Yerel bir socks.py dosyasının veya paketinin amaçlanan bağımlılığı gölgeleyip gölgelemediğini kontrol edin. Python’un modül arama yolu, o dosyanın kurulu paketin önüne geçmesine neden olabilir. Kazara oluşan çakışmayı bilerek yeniden adlandırın ve onu zaten içe aktarmış olan süreci yeniden başlatın.
PySocks kaynak kodu hem set_default_proxy hem de uyumluluk yazımı olan setdefaultproxy ile birlikte create_connection içerir. Bu nedenle tek bir yazımı körü körüne değiştirmek, eksik bir özniteliğin tam teşhisi değildir.
İçe aktarılan modül ve sürüm doğru olduğunda, kodu o projenin belgelenmiş API’siyle karşılaştırın. İçe aktarma çalışıyor gibi görünene kadar ilgisiz sistem kitaplığı dizinlerini Python’un arama yoluna elle eklemekten kaçının. Bu, bağımlılık sürümlerini karıştırabilir ve altta yatan ortam uyumsuzluğunu çözülmeden bırakabilir.