Грешка като module 'socks' has no attribute 'create_connection' възниква преди успешна заявка през прокси. Започнете с модула на 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, докато импортът не започне да работи. Това може да смеси версии на зависимости и да остави основното несъответствие на средата неразрешено.

Подобни статии