Pip이 Arch Linux에서 작동을 멈춥니다.

Pip이 Arch Linux에서 작동을 멈춥니다.

내 Arch 시스템에서 Pip을 사용하려고 하면 다음 오류가 발생합니다.

Traceback (most recent call last):
  File "/usr/bin/pip", line 5, in <module>
    from pip._internal.cli.main import main
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/main.py", line 9, in <module>
    from pip._internal.cli.autocompletion import autocomplete
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/autocompletion.py", line 10, in <module>
    from pip._internal.cli.main_parser import create_main_parser
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/cmdoptions.py", line 24, in <module>
    from pip._internal.cli.parser import ConfigOptionParser
  File "/usr/lib/python3.10/site-packages/pip/_internal/cli/parser.py", line 12, in <module>
    from pip._internal.configuration import Configuration, ConfigurationError
  File "/usr/lib/python3.10/site-packages/pip/_internal/configuration.py", line 26, in <module>
    from pip._internal.utils.logging import getLogger
  File "/usr/lib/python3.10/site-packages/pip/_internal/utils/logging.py", line 29, in <module>
    from pip._internal.utils.misc import ensure_dir
  File "/usr/lib/python3.10/site-packages/pip/_internal/utils/misc.py", line 37, in <module>
    from pip._vendor.pep517 import Pep517HookCaller
ImportError: cannot import name 'Pep517HookCaller' from 'pep517' (/home/krystian/.local/lib/python3.10/site-packages/pep517/__init__.py)

하지 말아야 할 Pip 패키지와 Arch 패키지를 혼합했는데 이제 가상 환경 외부에서 Pip을 실행하면 이 오류가 표시되고 패키지를 제거할 수 없습니다. 여전히 가상 환경에서 Pip을 사용할 수 있고 pacman을 통해 Python 패키지를 관리할 수 있습니다.

파이썬 버전: 3.10.6

답변1

분명히 이 문제는 Pip 패키지를 설치하는 것과 아무 관련이 없지만 내 사용자 환경에서는 패키지가 손상 sudo되었습니다 . Pip을 사용하지 않고 삭제하여 패키지를 제거하면 문제가 해결되었습니다. 이 작업을 수행하기 전에 디렉토리를 백업하는 것을 잊지 마십시오 !pep517~/.local/lib/python3.10~/.local/lib/python3.10/site-packages/pep517/site-packages

답변2

  1. 먼저 패키지를 다시 설치해 보세요.
sudo pacman -S python-pip     # reinstalls pip
which pip                     # checks the location of pip
pip install -U pip            # DO NOT RUN AS SUDO! Upgrades pip
which pip                     # check the if the path is the same as previously
hash -r                       # clears bash cache
which pip                     # path *should* now be /usr/local/bin/pip
sudo reboot                   # reboots the machine

운이 좋다면 다른 패키지를 망치지 않았으며 모든 것이 정상으로 돌아올 것입니다. 그렇지 않은 경우 @나에게 연락하시면 문제를 해결하기 위해 최선을 다하겠습니다.


편집하다:

  1. 옵션 1이 작동하지 않으므로 다음을 시도해 보십시오.
python -m pip uninstall pip   # removes the pip installed using pip

터미널을 닫았다가 다시 열어서 pip작동하는지 확인하세요. 위 명령에 오류가 발생하면 다음 단계를 계속 진행하세요.

  1. 시스템 패키지 제거:
pacman -Rsn python-pip        # removes the package, unrequired deps, and their configuration files
whereis pip                   # check that pip has been completely removed

pip 결과가 시스템에 여전히 존재하는 경우 를 사용하여 2단계에서 명령을 실행한 sudo후 3단계의 단계를 반복해야 할 수 있습니다.

  1. 성공적으로 삭제된 경우 pip:
pacman -S python-pip          # installs the package

pip작동하는지 확인하세요 .

  1. pip최후의 수단: 이 방법 중 어느 것도 작동하지 않으면 새 설치 위치(예 : ) 를 가리키도록 경로를 설정해야 할 수도 있습니다. alias pip="/usr/local/bin/pip"이는 지저분한 해결 방법일 뿐입니다. 그렇지 않으면 어떻게 해야 할지 모르겠습니다. OS를 다시 설치해야 할 수도 있습니다.

관련 정보