TypeError: attrib () otrzymał nieoczekiwany argument słowa kluczowego „convert”

55

Ten błąd wystąpił podczas automatycznego testowania projektu Pythona na serwerze CI przy użyciu pytest. Używam pytest==4.0.2. Ten błąd dopiero zaczął się pojawiać, poprzednie rurociągi wydają się działać dobrze.

Pełny błąd:

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
źródło
Dodaj swój kod lub przygotuj minimalny przykład.
Artem Vovsia

Odpowiedzi:

97

pytestwydaje się mieć pakiet attrsjako zależność. attrs==19.2.0został wypuszczony 2019-10-01 17:00 UTC. Wydaje się, że powoduje to powyższy problem.

Przejście z powrotem do attrs==19.1.0rozwiązania problemu. Po prostu wykonaj następujące czynności:

pip install attrs==19.1.0

UWAGA : Oczekuję, że problem zostanie rozwiązany przez attrslub pytestwkrótce po wydaniu nowej wersji. Dlatego ta poprawka powinna być tymczasowa.

AKTUALIZACJA : Przeniesienie komentarza do odpowiedzi. Ten błąd nie występuje w nowszych wersjach pytest, tjpytest==5.2.0

nitred
źródło
7
Potwierdzam, że najlepszym działaniem jest aktualizacja pytestdo nowszej wersji.
Guillaume Lebourgeois
2
Myślę, że =w przypinaniu wersji brakuje znaku. Powinno byćpip install --upgrade attrs==19.1.0
logc
4

Pytest wersja 5.3.1 z attrs Wersja 19.3.0 działa dla mnie dobrze. [Aby sprawdzić wersję pytest i wersję attrs, wydaj następujące polecenie:]

pip show pytest attrs

Rozwiązałem ten sam problem, aktualizując moduł pytest za pomocą polecenia pip:

pip install -U pytest
iun1x
źródło