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

Схожі статті