วิธีแก้ปัญหา dnf ที่เสียหายใน Fedora 26 เมื่อฉันได้รับ“ ImportError: หมายเลขเวทย์มนตร์ที่ไม่ดีใน 'หก'”


1

dnf ของฉันหยุดทำงานและแสดงข้อผิดพลาดนี้:

Traceback (most recent call last):
  File "/usr/bin/dnf", line 57, in <module>
    from dnf.cli import main
  File "/usr/lib/python3.6/site-packages/dnf/__init__.py", line 31, in <module>
    import dnf.base
  File "/usr/lib/python3.6/site-packages/dnf/base.py", line 37, in <module>
    import dnf.conf
  File "/usr/lib/python3.6/site-packages/dnf/conf/__init__.py", line 40, in <module>
    from dnf.conf.config import PRIO_DEFAULT, PRIO_MAINCONFIG, PRIO_AUTOMATICCONFIG
  File "/usr/lib/python3.6/site-packages/dnf/conf/config.py", line 26, in <module>
    from iniparse.compat import ParsingError, RawConfigParser as ConfigParser
  File "/usr/lib/python3.6/site-packages/iniparse/__init__.py", line 6, in <module>
    from .ini import INIConfig, change_comment_syntax
  File "/usr/lib/python3.6/site-packages/iniparse/ini.py", line 47, in <module>
    import six
ImportError: bad magic number in 'six': b'\x03\xf3\r\n'

ฉันจำไม่ได้ว่าสิ่งใดที่ฉันติดตั้งนอกเหนือจากการอัปเดตของ Fedora ผ่าน dnf distro-sync มันอาจจะมีปัญหากับการเปลี่ยนเวอร์ชั่นของไพ ธ อนไหม

ฉันใช้ Fedora 26 Workstation x86_64


คุณสามารถเริ่มต้นด้วยการยืนยัน dnf: rpm -V dnf
HoD

สวัสดี @HoD rpm -V dnf ไม่ได้ให้อะไรเลย
tenshimsm

เกิดอะไรขึ้นก่อนที่จะหยุดทำงาน คุณสูญเสียพลังงานในระหว่างการอัปเกรดหรืออะไรที่คล้ายกัน? มันใช้งานได้ล่าสุดเมื่อใด
mattdm

ไม่ไม่มีอะไรเกิดขึ้นที่ฉันรู้
tenshimsm

ฉันวิ่งติดตั้ง python3-yum ที่คัดค้านไม่ได้แล้ว พยายามติดตั้ง dnf abd python-dnf อีกครั้งโดยใช้ yum-deprecated ยังไม่มีอะไรแก้ไขมัน
tenshimsm

คำตอบ:


1

ดูเหมือนว่างูหลาม six ไลบรารีเสียหาย คุณทำอะไรกับ rpm -V python3-six? หากสิ่งนี้ไม่ให้ผลลัพธ์แสดงว่าปัญหาอยู่ที่อื่น อย่างไรก็ตามหากคุณได้รับสิ่งที่ชอบ:

S.5....T.    /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc

ลองลบการละเมิด pyc ไฟล์และลอง sudo dnf list อีกครั้ง ( sudo rm /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc )

ทราบว่ามันไม่ โดยทั่วไป ปลอดภัยเพียงแค่ลบไฟล์แบบสุ่ม แต่สิ่งเหล่านี้ pyc ไฟล์จะถูกประมวลผลโดยการเข้ารหัสล่วงหน้าเป็นเครื่องมือเพิ่มประสิทธิภาพและจะถูกสร้างขึ้นใหม่

โปรดทราบว่าหลังจากการพักผ่อนหย่อนใจ rpm -Vf จะ ยังคง แสดงไฟล์ที่มีการเปลี่ยนแปลงเพราะ ... มันมี แต่มันอาจจะแก้ไขปัญหา "หมายเลขเวทย์มนตร์" ที่ไม่ดีนี้โดยเฉพาะ

ถ้า ที่ ไม่ทำงานมีบางอย่างแย่ลงเกิดขึ้น


rpm -V python3-six ไม่ได้แสดงอะไรเลย
tenshimsm

นั่นมันแปลกนะ คุณลองลบออกได้ไหม /usr/lib/python3.6/site-packages/__pycache__/six*.pyc? มาดูกันว่าเกิดอะไรขึ้น!
mattdm

ไม่มีอะไรเกิดขึ้นเช่นกัน :(
tenshimsm

ตกลงสิ่งต่อไป :) คุณมีไหม อื่น ๆ หลามติดตั้งบนระบบ?
mattdm

สวัสดี สิ่งนี้: python python2.7-futurize python35 python3m python3.6 python3 ที่ครอบคลุม python2 python2.7-pasteurize python3.5 python3.5m-config python3.6m python3-mako-render python3.7 python3-config python3 .5m-x86_64-config python3-chardetect python3-pyinotify
tenshimsm

2

ลองค้นหาไฟล์ที่อาจขัดแย้งกัน:

sudo find / -name 'six.py*'

ตัวอย่างเช่นถ้าคุณมีไฟล์ /usr/bin/six.pycหลามจะพยายามใช้สิ่งนั้นก่อน (เนื่องจากคำสั่งโหลดโมดูล) การย้าย / ลบไฟล์นี้เป็นเคล็ดลับสำหรับฉัน

ดูสิ่งนี้ด้วย: คำถามที่คล้ายกันเกี่ยวกับ ask.fedoraproject.org

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