TypeError: attrib () obtuvo un argumento de palabra clave inesperado 'convertir'

55

Este error ocurrió durante la prueba automatizada de un proyecto de Python en el servidor de CI usando pytest. Estoy usando pytest==4.0.2. Este error solo comenzó a ocurrir, las canalizaciones anteriores parecen funcionar bien.

El error completo:

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
fuente
Agregue su código por favor o prepare un ejemplo mínimo.
Artem Vovsia

Respuestas:

97

pytestParece tener el paquete attrscomo una dependencia. attrs==19.2.0fue lanzado alrededor 2019-10-01 17:00 UTC. Esto parece causar el problema anterior.

Cambiar de nuevo para attrs==19.1.0solucionar el problema. Solo haz lo siguiente:

pip install attrs==19.1.0

NOTA : Espero que el problema se resuelva pronto attrso pytestpronto lanzando una nueva versión. Entonces, esta solución solo debe ser temporal.

ACTUALIZACIÓN : Mover el comentario a la respuesta. Este error no ocurre en las versiones más recientes de pytest, es decirpytest==5.2.0

nitred
fuente
77
Confirmo que la mejor acción es actualizar pytesta una versión más reciente.
Guillaume Lebourgeois
2
Creo que falta un =signo en la versión fijada. Debería serpip install --upgrade attrs==19.1.0
logc
4

Pytest versión 5.3.1 con attrs La versión 19.3.0 funciona bien para mí. [Para verificar la Versión de pytest y la Versión de attrs, emita el siguiente comando:]

pip show pytest attrs

Resolví el mismo problema actualizando el módulo pytest a través del comando pip:

pip install -U pytest
iun1x
fuente