Python імпортував не той модуль socks, який ви очікували
Перевірте імпортований модуль, перш ніж вважати відсутні атрибути SOCKS збоєм proxy або DNS.
Помилка на кшталт 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, доки імпорт не почне працювати. Це може змішати версії залежностей і залишити невирішеною невідповідність середовища.