LoạiError: attrib () có một đối số từ khóa bất ngờ 'convert'


55

Lỗi này xảy ra trong quá trình kiểm tra tự động dự án python trên máy chủ CI bằng cách sử dụng pytest. Tôi đang sử dụng pytest==4.0.2. Lỗi này chỉ mới bắt đầu xảy ra, các đường ống trước đó dường như hoạt động tốt.

Lỗi đầy đủ:

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'

Thêm mã của bạn xin vui lòng hoặc chuẩn bị ví dụ tối thiểu.
Artem Vovsia

Câu trả lời:


97

pytestdường như có gói attrsnhư một phụ thuộc. attrs==19.2.0đã được phát hành xung quanh 2019-10-01 17:00 UTC. Điều này dường như gây ra vấn đề ở trên.

Chuyển về để attrs==19.1.0khắc phục vấn đề. Chỉ cần làm như sau:

pip install attrs==19.1.0

LƯU Ý : Tôi hy vọng rằng vấn đề sẽ được giải quyết ngay attrshoặc pytestsớm bằng cách phát hành phiên bản mới. Vì vậy, sửa chữa này chỉ nên là tạm thời.

CẬP NHẬT : Di chuyển bình luận vào câu trả lời. Lỗi này không xảy ra trên các phiên bản mới hơn của pytest tức làpytest==5.2.0


7
Tôi xác nhận, hành động tốt nhất là cập nhật pytestlên phiên bản mới hơn.
Guillaume Lebourgeois

2
Tôi nghĩ rằng có một =dấu hiệu bị thiếu trong phiên bản ghim. Nó nên làpip install --upgrade attrs==19.1.0
logc


4

phiên bản pytest 5.3.1 với attrs Phiên bản 19.3.0 hoạt động tốt với tôi. [Để kiểm tra Phiên bản pytest và Phiên bản attrs ban hành lệnh sau:]

pip show pytest attrs

Tôi đã giải quyết vấn đề tương tự bằng cách nâng cấp mô-đun pytest thông qua lệnh pip:

pip install -U pytest
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.