[python] TypeError : attrib ()에 예기치 않은 키워드 인수 ‘convert’가 있습니다.

이 오류는을 사용하여 CI 서버에서 Python 프로젝트의 자동 테스트 중에 발생했습니다 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'



답변

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


답변

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 ).


답변

attrs 버전 19.3.0이있는 pytest 버전 5.3.1이 제대로 작동합니다. [pytest 버전 및 attrs 버전을 확인하려면 다음 명령을 실행하십시오.]

pip show pytest attrs

pip 명령을 통해 pytest 모듈을 업그레이드하여 동일한 문제를 해결했습니다.

pip install -U pytest


답변