Debian에서 업데이트 대안을 사용하여 Python3.7.9로 전환하면 Pip가 중단됩니다.

Debian에서 업데이트 대안을 사용하여 Python3.7.9로 전환하면 Pip가 중단됩니다.

저는 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 버전을 사용하십시오 .

관련 정보