TypeError: attrib () hat ein unerwartetes Schlüsselwortargument 'convert' erhalten.


55

Dieser Fehler trat beim automatisierten Testen eines Python-Projekts auf dem CI-Server mit auf pytest. Ich benutze pytest==4.0.2. Dieser Fehler trat gerade erst auf, frühere Pipelines scheinen einwandfrei zu funktionieren.

Der volle Fehler:

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'

Fügen Sie bitte Ihren Code hinzu oder bereiten Sie ein Mindestbeispiel vor.
Artem Vovsia

Antworten:


97

pytestscheint das Paket attrsals Abhängigkeit zu haben. attrs==19.2.0wurde herum veröffentlicht 2019-10-01 17:00 UTC. Dies scheint das obige Problem zu verursachen.

Zurückschalten, um attrs==19.1.0das Problem zu beheben. Gehen Sie einfach wie folgt vor:

pip install attrs==19.1.0

HINWEIS : Ich gehe davon aus, dass das Problem entweder durch attrsoder pytestbald durch Veröffentlichung einer neuen Version behoben wird . Dieser Fix sollte also nur vorübergehend sein.

UPDATE : Verschieben des Kommentars in die Antwort. Dieser Fehler tritt bei den neueren Versionen von pytest nicht auf, d. H.pytest==5.2.0


7
Ich bestätige, dass die beste Aktion darin besteht, pytestauf eine neuere Version zu aktualisieren .
Guillaume Lebourgeois

2
Ich denke, es gibt ein fehlendes =Zeichen in der Version, die feststeckt. Es sollte seinpip install --upgrade attrs==19.1.0
logc


4

pytest Version 5.3.1 mit attrs Version 19.3.0 funktioniert gut für mich. [Um die pytest-Version und die attrs-Version zu überprüfen, geben Sie den folgenden Befehl ein:]

pip show pytest attrs

Ich habe das gleiche Problem gelöst, indem ich das Pytest-Modul über den Befehl pip aktualisiert habe:

pip install -U pytest
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.