TypeError: attrib () получил неожиданный аргумент ключевого слова 'convert' - PullRequest
34 голосов
/ 01 октября 2019

Эта ошибка произошла во время автоматического тестирования проекта 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'

Ответы [ 2 ]

57 голосов
/ 01 октября 2019

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

7 голосов
/ 02 октября 2019

pytest исправлен с использованием устаревшего ключевого слова convert в 3.6.3 (https://docs.pytest.org/en/latest/changelog.html#pytest-3-6-3-2018-07-04). в 4.0.1, Pytest объединил код, используя convert (https://github.com/pytest-dev/pytest/pull/4427). Этот код был исправлен в 5.2.0 (https://github.com/pytest-dev/pytest/pull/4795).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...