내 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
- 먼저 패키지를 다시 설치해 보세요.
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이 작동하지 않으므로 다음을 시도해 보십시오.
python -m pip uninstall pip # removes the pip installed using pip
터미널을 닫았다가 다시 열어서 pip
작동하는지 확인하세요. 위 명령에 오류가 발생하면 다음 단계를 계속 진행하세요.
- 시스템 패키지 제거:
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단계의 단계를 반복해야 할 수 있습니다.
- 성공적으로 삭제된 경우
pip
:
pacman -S python-pip # installs the package
pip
작동하는지 확인하세요 .
pip
최후의 수단: 이 방법 중 어느 것도 작동하지 않으면 새 설치 위치(예 : ) 를 가리키도록 경로를 설정해야 할 수도 있습니다.alias pip="/usr/local/bin/pip"
이는 지저분한 해결 방법일 뿐입니다. 그렇지 않으면 어떻게 해야 할지 모르겠습니다. OS를 다시 설치해야 할 수도 있습니다.