내 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'
dnf distro-sync를 통해 Fedora 자체 업데이트 외에 설치한 것은 전혀 기억나지 않습니다. Python 버전 변경에 문제가 있는 걸까요?
저는 Fedora 26 Workstation x86_64를 사용합니다.
답변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
는아직파일이 변경된 것으로 표시합니다. 왜냐하면... 변경되었기 때문입니다. 그러나 아마도 이 특별한 "나쁜 매직 넘버" 문제를 해결할 것입니다.
만약에저것작동하지 않습니다. 더 나쁜 일이 벌어지고 있습니다.
답변2
충돌할 수 있는 파일을 찾아보세요.
sudo find / -name 'six.py*'
예를 들어 file 이 있는 경우 /usr/bin/six.pyc
Python은 (모듈 로드 순서로 인해) 해당 파일을 먼저 사용하려고 시도합니다. 이 파일을 재배치/제거하는 것이 나에게 도움이 되었습니다.