Ошибка вида 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, пока импорт не начнёт работать. Это может смешать версии зависимостей и оставить неразрешённым несоответствие окружения.

Похожие статьи