TypeError: attrib () a obtenu un argument de mot clé inattendu «convertir»


55

Cette erreur s'est produite lors du test automatisé d'un projet python sur le serveur CI à l'aide de pytest. J'utilise pytest==4.0.2. Cette erreur ne fait que commencer à se produire, les pipelines précédents semblent bien fonctionner.

L'erreur complète:

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'

Ajoutez votre code s'il vous plaît ou préparez un exemple minimum.
Artem Vovsia

Réponses:


97

pytestsemble avoir le package attrscomme une dépendance. attrs==19.2.0a été libéré autour 2019-10-01 17:00 UTC. Cela semble provoquer le problème ci-dessus.

Revenir à attrs==19.1.0résout le problème. Procédez simplement comme suit:

pip install attrs==19.1.0

REMARQUE : je m'attends à ce que le problème soit résolu par attrsou pytestbientôt en publiant une nouvelle version. Cette correction ne doit donc être que temporaire.

MISE À JOUR : Déplacer le commentaire dans la réponse. Cette erreur ne se produit pas sur les versions les plus récentes de pytest iepytest==5.2.0


7
Je confirme, la meilleure action est de mettre pytestà jour vers une version plus récente.
Guillaume Lebourgeois

2
Je pense qu'il y a un =signe manquant dans l'épinglage de la version. Cela devrait êtrepip install --upgrade attrs==19.1.0
logc


4

pytest version 5.3.1 avec attrs La version 19.3.0 fonctionne très bien pour moi. [Pour vérifier la version pytest et la version attrs, lancez la commande suivante:]

pip show pytest attrs

J'ai résolu le même problème en mettant à niveau le module pytest via la commande pip:

pip install -U pytest
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.