Ralat seperti module 'socks' has no attribute 'create_connection' berlaku sebelum permintaan proksi berjaya. Mulakan dengan modul Python yang diimport oleh aplikasi.

import sys
import socks

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

Baris pemeriksaan ini mengenal pasti penterjemah dan fail yang diimport. Bacanya dalam persekitaran aplikasi yang sama tempat kegagalan berlaku. Terminal yang menggunakan persekitaran maya lain boleh mengimport fail lain dengan nama yang sama.

Semak sama ada fail atau pakej socks.py tempatan melindungi kebergantungan yang dimaksudkan. Laluan carian modul Python boleh menyebabkan fail itu mengalahkan pakej yang dipasang. Namakan semula pertembungan tidak sengaja itu secara sengaja dan mulakan semula proses yang sudah mengimportnya.

Sumber PySocks mengandungi kedua-dua set_default_proxy dan ejaan keserasian setdefaultproxy, bersama create_connection. Jadi menukar satu ejaan secara membuta tuli bukan diagnosis lengkap bagi atribut yang hilang.

Setelah modul yang diimport dan versinya betul, bandingkan kod dengan API terdokumen projek itu. Elakkan menambah direktori pustaka sistem yang tidak berkaitan secara manual ke laluan carian Python sehingga import kelihatan berfungsi. Itu boleh mencampurkan versi kebergantungan dan membiarkan ketidakpadanan persekitaran asas tidak diselesaikan.

Artikel berkaitan