TypeError: attrib () มีอาร์กิวเมนต์คำหลักที่ไม่คาดคิด 'แปลง'


55

ข้อผิดพลาดนี้เกิดขึ้นระหว่างการทดสอบโครงการหลามบนเซิร์ฟเวอร์ CI โดยpytestอัตโนมัติ pytest==4.0.2ฉันใช้ ข้อผิดพลาดนี้เพิ่งเกิดขึ้นเท่านั้นท่อส่งก่อนหน้านี้ดูเหมือนจะทำงานได้ดี

ข้อผิดพลาดแบบเต็ม:

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'

เพิ่มรหัสของคุณโปรดหรือเตรียมตัวอย่างขั้นต่ำ
Artem Vovsia

คำตอบ:


97

pytestดูเหมือนว่าจะมีแพคเกจattrsเป็นการอ้างอิง ได้รับการปล่อยตัวไปรอบ ๆattrs==19.2.0 2019-10-01 17:00 UTCดูเหมือนว่าจะทำให้เกิดปัญหาข้างต้น

การสลับกลับเพื่อattrs==19.1.0แก้ไขปัญหา เพียงทำต่อไปนี้:

pip install attrs==19.1.0

หมายเหตุ : ผมคาดหวังว่าปัญหาจะได้รับการแก้ไขอย่างใดอย่างหนึ่งโดยattrsหรือpytestในเร็ว ๆ นี้โดยการปล่อยรุ่นใหม่ ดังนั้นการแก้ไขนี้ควรเป็นเพียงชั่วคราว

UPDATE : การย้ายความคิดเห็นไปยังคำตอบ ข้อผิดพลาดนี้ไม่ได้เกิดขึ้นกับ pytest รุ่นใหม่กว่าpytest==5.2.0


7
ฉันยืนยันการกระทำที่ดีที่สุดคือการอัปเดตpytestเป็นเวอร์ชันที่ใหม่กว่า
Guillaume Lebourgeois

2
ฉันคิดว่ามี=เครื่องหมายที่ขาดหายไปในการตรึงเวอร์ชัน มันควรจะเป็นpip install --upgrade attrs==19.1.0
logc

8

แก้ไข pytest โดยใช้คำหลักconvertที่เลิกใช้แล้วที่ 3.6.3 ( https://docs.pytest.org/en/latest/changelog.html#pytest-3-6-3-2018-07-04 ) ที่ 4.0.1 รหัส pytest ที่ผสานโดยใช้convert( https://github.com/pytest-dev/pytest/pull/4427 ) รหัสนี้ได้รับการแก้ไขใน 5.2.0 ( https://github.com/pytest-dev/pytest/pull/4795 )


4

pytest รุ่น 5.3.1 พร้อม attrs เวอร์ชัน 19.3.0 ใช้งานได้ดีสำหรับฉัน [เพื่อตรวจสอบรุ่น pytest และรุ่น Attrs ออกคำสั่งต่อไปนี้:]

pip show pytest attrs

ฉันแก้ไขปัญหาเดียวกันโดยการอัพเกรดโมดูล pytest ผ่านคำสั่ง pip:

pip install -U pytest
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.