Объект «TwoCaptcha» не имеет атрибута «нормальный»

Я работаю над проектом, в который хочу интегрировать функцию обхода капчи. Я использовал для этого сервис 2captcha, и он был весьма успешным, пока я не перешел с Windows на Linux (Ubuntu 22.04). Я продолжаю получать ту же ошибку: объект «TwoCaptcha» не имеет атрибута «нормальный», когда я пытаюсь запустить эту функцию:

def solve_captcha(image_path):
    solver = TwoCaptcha(api_key)
    try:
        result = solver.normal(image_path)
    except Exception as e:
        logging.error(e)
    else:
        return result['code']

Проблема в том, что в обеих системах установлена ​​одна и та же версия библиотеки. После перехода я ничего не менял в приведенном выше коде функции, и официальная документация включает указанный атрибут в примеры.

Может ли кто-нибудь помочь мне понять проблему?

Я пробовал искать как в документации библиотеки (https://pypi.org/project/2captcha-python/ ), так и в примерах на официальной веб-странице сервиса ( https://2captcha.com/ api-docs/normal-captcha), но оба они включают в свои коды «нормальные» атрибуты.

возможно, вы используете другой модуль с тем же именем. Или, может быть, вы создали собственный класс TwoCaptcha, и в нем нет этой функции. Вы можете использовать print( dir(solver) ), чтобы увидеть, какие переменные и функции он имеет. Вы также можете попробовать print( TwoCaptcha.__file__ ) посмотреть, в каком файле у вас есть этот класс.

furas 07.06.2024 12:34

Я установил этот модуль в Linux Mint (на базе Ubuntu), и когда я использую print(TwoCaptcha.normal), он показывает что-то вроде <function TwoCaptcha.normal at 0x76817c1d93f0>. TwoCaptcha.__file__ не существует, но TwoCaptcha.__module__ дает 'twocaptcha.solver'

furas 07.06.2024 12:39

всегда помещайте ПОЛНОЕ сообщение об ошибке (начиная со слова «Traceback») в вопросе (не в комментариях) в виде текста (не скриншота и не ссылки на внешний портал). В полной версии ошибки/трассировки есть и другая полезная информация. Кроме того, вопрос станет более читабельным, и его сможет увидеть больше людей, поэтому больше людей смогут помочь.

furas 07.06.2024 12:41
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
3
78
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Добрый день, попробуйте запустить код командой python3.

Пример: python3 main.py

Или используйте виртуальную среду.

Ответ принят как подходящий

Итак... Нашел проблему и предложил решение для таких людей, как я:

Судя по всему, я использовал устаревшую версию зависимости 2capltcha (называемую «TwoCaptcha»).

Активный называется «2captcha-python».

Устаревший вариант просто не имел необходимой функциональности.

Другие вопросы по теме