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'
nitred
la source
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

nitred
la source
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
iun1x
la source