하나를 만들었 sudo apt update && sudo apt full-upgrade -y
는데 다음과 같은 오류가 발생했습니다.
File "/usr/bin/pycompile", line 35, in <module>
from debpython.version import SUPPORTED, debsorted, vrepr, \
File "/usr/share/python/debpython/version.py", line 24, in <module>
from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
이 글을 읽은 후, 나는 이것이 어딘가에서 수동으로 조작하는 것과 관련이 있다고 생각합니다 /usr/bin
(지금 읽었으므로 결코 수행된 적이 없지만 과거에 수행되었는지 기억이 나지 않습니다...). 배포판에 필요한 기본 Python 버전입니다.
시스템의 Python 측에서 볼 수 있는 내용은 다음과 같습니다. 는
/usr/bin/python
에 대한 링크이고 python2
, python2
은 에 대한 링크입니다 python2.7
.
확실하지 않지만 이것이 올바른 버전을 가리키는 것입니까? 위의 오류와도 관련이 있나요?
sudo apt -f --reinstall install python-configparser
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
Need to get 62.6 kB of archives.
After this operation, 0 B of additional disk space will be used.
Get:1 http://kali.download/kali kali-rolling/main amd64 python-configparser all 3.5.0b2-3 [62.6 kB]
Fetched 62.6 kB in 1s (57.7 kB/s)
(Reading database ... 402234 files and directories currently installed.)
Preparing to unpack .../python-configparser_3.5.0b2-3_all.deb ...
Unpacking python-configparser (3.5.0b2-3) over (3.5.0b2-3) ...
Setting up mercurial-common (5.4.1-1) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 35, in <module>
from debpython.version import SUPPORTED, debsorted, vrepr, \
File "/usr/share/python/debpython/version.py", line 24, in <module>
from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
dpkg: error processing package mercurial-common (--configure):
installed mercurial-common package post-installation script subprocess returned error exit status 1
Setting up python-configparser (3.5.0b2-3) ...
Traceback (most recent call last):
File "/usr/bin/pycompile", line 35, in <module>
from debpython.version import SUPPORTED, debsorted, vrepr, \
File "/usr/share/python/debpython/version.py", line 24, in <module>
from ConfigParser import SafeConfigParser
ModuleNotFoundError: No module named 'ConfigParser'
dpkg: error processing package python-configparser (--configure):
installed python-configparser package post-installation script subprocess returned error exit status 1
dpkg: dependency problems prevent configuration of mercurial:
mercurial depends on mercurial-common (= 5.4.1-1); however:
Package mercurial-common is not configured yet.
dpkg: error processing package mercurial (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mercurial-common
python-configparser
mercurial
8월 4일 업데이트: 해결된 것 같습니다. 다양한 다른 포럼 등을 팔로우하고 많은 실험을 수행한 후 업데이트만 하면 됩니다. :-). 아무것도 작동하지 않습니다.
따라서 모든 Python 및 Python 최소 패키지에서 apt-cache rdependents 명령을 시도한 결과 python2.7이 종종 출력에 중복 항목을 표시하는 것으로 나타났습니다. 그런 다음 dpkg -V 및 python2 최소화를 시도했는데 기본적으로 이상한 출력이 나왔습니다. 그 중 일부는 무엇입니까? 왼쪽에 pycompile이 언급되어 있지만(당시에는 스크린샷이 없어서 죄송합니다) 출력이 표시된 유일한 파일이었고 당시에는 python2.7이 깨졌을 수도 있다고 생각했습니다. 따라서 다음과 같이 진행하십시오.
내 /usr/bin/python을 다음과 같이 python3에 연결하십시오. sudo ln -s /usr/bin/python3 /usr/bin/python 그런 다음 버전이 다음과 같이 어딘가를 가리키는지 확인하십시오. python - 버전. 그런 다음 apt autoremove와 같이 aotoremove를 수행하고
마지막으로 sudo apt purge -y python2.7-minimal과 같이 2.7 최소 버전을 제거했습니다. 마침내 아무 문제 없이 apt를 사용할 수 있게 되었습니다. 그리고 sudo dpkg --force-all --configure -a와 함께 apt clean을 수행했는데 지금까지는 모든 것이 괜찮아 보입니다. 그래서 즉시 전원을 끄고 VM의 스냅샷을 찍은 후 정상적으로 부팅되었습니다. python2.7을 다시 설치해야 하는지 나중에 확인하세요...
추신! Python이 앞으로 이러한 이전 버전과의 호환성 문제를 겪게 될까요? 이 질문에 대해 웹을 검색하는 동안 이전 버전과의 호환성 문제와 관련된 것으로 보이는 많은 문제를 발견했습니다. (그렇다면 Python을 배우려는 계획을 포기해야 할 것 같습니다. 특히 Python을 배우려고 노력할 것이기 때문입니다. 쉘 스크립팅을 사용하지만 제가 본 접근 방식이 마음에 들지 않습니다. 장기적으로는 쉘 스크립팅과 JS 또는 GO 같은 것을 조합하는 것이 더 나을 수도 있습니다.
팁과 도움을 주신 모든 분들께 감사드립니다. 2.7에서 문제가 발생하면 업데이트하겠습니다.