TypeError: attrib () mendapat argumen 'konversi' kata kunci yang tidak terduga

55

Kesalahan ini terjadi selama pengujian otomatis proyek python di server CI menggunakan pytest. Saya menggunakan pytest==4.0.2. Kesalahan ini baru saja mulai terjadi, saluran pipa sebelumnya tampaknya berfungsi dengan baik.

Kesalahan penuh:

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
sumber
Tolong tambahkan kode Anda atau siapkan contoh minimum.
Artem Vovsia

Jawaban:

97

pytesttampaknya memiliki paket attrssebagai ketergantungan. attrs==19.2.0dirilis sekitar 2019-10-01 17:00 UTC. Ini tampaknya menyebabkan masalah di atas.

Beralih kembali untuk attrs==19.1.0memperbaiki masalah. Lakukan saja hal berikut:

pip install attrs==19.1.0

CATATAN : Saya berharap bahwa masalah ini akan diselesaikan dengan attrsatau pytestsegera dengan merilis versi baru. Jadi perbaikan ini hanya bersifat sementara.

UPDATE : Memindahkan komentar ke dalam jawabannya. Kesalahan ini tidak terjadi pada versi pytest terbarupytest==5.2.0

nitred
sumber
7
Saya mengkonfirmasi, tindakan terbaik adalah memperbarui pytestke versi yang lebih baru.
Guillaume Lebourgeois
2
Saya pikir ada =tanda yang hilang pada versi pinning. Seharusnyapip install --upgrade attrs==19.1.0
logc
4

pytest versi 5.3.1 dengan attrs Versi 19.3.0 berfungsi dengan baik untuk saya. [Untuk memeriksa Versi pytest dan Versi attrs, jalankan perintah berikut:]

pip show pytest attrs

Saya memecahkan masalah yang sama dengan memutakhirkan modul pytest via perintah pip:

pip install -U pytest
iun1x
sumber