TypeError: attrib () получил неожиданный аргумент ключевого слова 'convert'

55

Эта ошибка произошла во время автоматического тестирования проекта Python на CI-сервере с использованием pytest . Я использую pytest==4.0.2. Эта ошибка только начала появляться, предыдущие конвейеры работают нормально.

Полная ошибка:

File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory
    lambda p: Path(os.path.abspath(six.text_type(p)))
TypeError: attrib() got an unexpected keyword argument 'convert'
nitred
источник
Пожалуйста, добавьте свой код или подготовьте минимальный пример.
Артем Вовся

Ответы:

97

pytestкажется, что пакет attrsв качестве зависимости. attrs==19.2.0был выпущен вокруг 2019-10-01 17:00 UTC. Это, кажется, вызывает проблему выше.

Возвращение к attrs==19.1.0решению проблемы. Просто сделайте следующее:

pip install attrs==19.1.0

ПРИМЕЧАНИЕ . Я ожидаю, что проблема будет решена либо до, attrsлибо в pytestближайшее время путем выпуска новой версии. Так что это исправление должно быть только временным.

ОБНОВЛЕНИЕ : Перемещение комментария в ответ. Эта ошибка не возникает в более новых версиях pytest, т.е.pytest==5.2.0

nitred
источник
7
Я подтверждаю, что лучшее действие - это обновить его pytestдо более новой версии.
Гийом Лебуржуа
2
Я думаю, что =в версии закрепление отсутствует знак. Это должно бытьpip install --upgrade attrs==19.1.0
logc
4

pytest версия 5.3.1 с attrs Версия 19.3.0 у меня работает нормально. [Чтобы проверить версию pytest и версию attrs, введите следующую команду:]

pip show pytest attrs

Я решил ту же проблему, обновив модуль pytest с помощью команды pip:

pip install -U pytest
iun1x
источник