저는 python3.9와 함께 제공되는 Debian 11을 사용하고 있습니다. 하지만 필요하지 않습니다. python3.7이 필요합니다. 그래서 pythonn3.7.9를 설치하고 대안을 업데이트했습니다.
문제는 Python 버전을 3.7.9로 전환하면 pip를 사용하여 아무것도 설치할 수 없다는 것입니다. pip install
명령에서 다음 오류가 발생합니다 .
sudo pip3 install requests
[sudo] password for deby:
Traceback (most recent call last):
File "/usr/bin/pip3", line 10, in <module>
from importlib.metadata import distribution
ModuleNotFoundError: No module named 'importlib.metadata'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/pip3", line 13, in <module>
from importlib_metadata import distribution
ModuleNotFoundError: No module named 'importlib_metadata'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 584, in _build_master
ws.require(__requires__)
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 901, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 792, in resolve
raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.VersionConflict: (pip 20.1.1 (/usr/local/lib/python3.7/site-packages), Requirement.parse('pip==20.3.4'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/bin/pip3", line 15, in <module>
from pkg_resources import load_entry_point
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3261, in <module>
@_call_aside
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3245, in _call_aside
f(*args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 3274, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 586, in _build_master
return cls._build_from_requirements(__requires__)
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 599, in _build_from_requirements
dists = ws.resolve(reqs, Environment())
File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 787, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'pip==20.3.4' distribution was not found and is required by the application
하지만 Python3.9로 다시 전환했을 때 Pip이 작동했습니다. 이 문제를 해결하는 방법을 모르겠습니다. Google에서 찾아봤는데 비슷한 문제가 있는 사람이 있는 질문을 찾을 수 없습니다.
답변1
첫 번째 예외 ModuleNotFoundError: No module named 'importlib_metadata'
는 pip를 찾을 수 없다는 것입니다.import library.metadataPython 3.8에 모듈이 추가되었으므로 Debian 저장소의 pip는 Python 3.7의 수동 설치와 호환되지 않습니다. 이전 버전의 pip를 수동으로 설치할 수 있지만, 설정할 수도 있는 Python 가상 환경을 사용하는 것이 좋습니다.다양한 Python 버전.
그래서 당신은 다음과 같은 것을 할 수 있습니다
$ python3.7 -m venv python37
$ source python37/bin/activate
/usr/bin/python3
실제로 시스템 전체를 변경하거나 pip 이외의 것을 손상시키지 않고 설치된 Python 3.7 버전을 사용하십시오 .