pip 업그레이드 후 오류 : 'main'이름을 가져올 수 없습니다


467

pip를 사용하여 패키지를 설치하려고 할 때 마다이 가져 오기 오류가 발생합니다.

guru@guru-notebook:~$ pip3 install numpy
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'


guru@guru-notebook:~$ cat `which pip3`
#!/usr/bin/python3
# GENERATED BY DEBIAN

import sys

# Run the main entry point, similarly to how setuptools does it, but because
# we didn't install the actual entry point from setup.py, don't use the
# pkg_resources API.
from pip import main
if __name__ == '__main__':
    sys.exit(main())

이전에는 제대로 작동했지만 왜이 오류가 발생하는지 잘 모르겠습니다. 이 오류에 대해 검색했지만 해결해야 할 것이 없습니다.

더 자세한 정보가 필요하면 알려주십시오. 질문을 업데이트하겠습니다.


1
이 링크 에서 추가 토론 .
Diagon

7
pip install --upgrade pip관리자 권한이없는 서버에서 pip를 업그레이드 하는 데 사용했기 때문에 동일한 문제가 발생했습니다 . pip를 제거 python -m pip uninstall pip하면 문제 가 해결되었습니다.
Foad

답변이 도움이되지 못했습니다. 이것은 내 문제였습니다 : github.com/pypa/pipenv/issues/2095
Étienne

답변:


846

실수로 시스템 핍을 업그레이드해야합니다 (아마도 같은 것을 통해 sudo pip install pip --upgrade)

pip 10.x는 내부 위치를 조정합니다. pip3당신이보고 있는 명령은 패키지 관리자 (아마도 데비안 기반입니까?)에서 제공하는 명령이며 pip가 관리하는 파일이 아닙니다.

pip의 이슈 트래커에서 이것에 대해 더 읽을 수 있습니다

시스템 pip를 업그레이드 하지 않고 virtualenv를 사용하고 싶을 것입니다 .

pip3바이너리 를 복구하려면을 (를) 해야합니다 sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

"지원되지 않는 영역"(시스템 패키지 관리자 외부의 시스템 패키지 업그레이드)을 계속하려는 경우 python3 -m pip ...대신 대신 사용할 수 있습니다 pip3.


28
sudo apt install python3-pip --reinstall문제를 해결하지 못했지만를 사용하여 패키지를 설치할 수 있습니다 python3 -m pip. 당신의 도움을 주셔서 감사합니다. 승인 된 것으로 표시하고 있습니다.
g_p

2
@g_p는 "fixup"방향을 업데이트했습니다 – 방금 docker에서 확인했습니다 (처음으로해야 했어요!)
Anthony Sottile

5
'sudo pip uninstall pip'가 원래 질문과 비슷한 오류를 냈기 때문에 'python -m pip uninstall pip'명령을 사용해야합니다.
Mz A

41
감사! 도움이되었습니다! sudo python -m pip uninstall pip && sudo apt install python-pip --reinstallpython2에 사용하십시오 !
Barmaley

1
Windows의 Ubuntu에서 작동합니다. 해결책은 @Barmaley가 python2 (기본 파이썬 인터프리터)에 제안하는 것입니다.
jdhao 2019

110

pip 파일을 수정하여 오류를 지울 수 있습니다.

파일 위치를 확인하십시오.

$ which pip

경로-> / usr / bin / pip

해당 위치 ( / usr / bin / pip )로 이동하여 터미널을 엽니 다.

시작하다: $ sudo nano pip

너는 볼 수있어:

import sys
from pip import main
if __name__ == '__main__':
     sys.exit(main())

로 변경:

import sys
from pip import __main__
if __name__ == '__main__':
     sys.exit(__main__._main())

그런 다음 ctrl + o 변경 사항을 작성하고 종료하십시오.

희망이 있습니다 !!


1
이렇게 변경해도 문제가 해결되지 않았지만 원래 텍스트로 다시 변경해도 문제가 해결되었습니다. ¯_ (ツ) _ / ¯
David

2
나는 이것을 시도했지만AttributeError: module 'pip.__main__' has no attribute 'main'
dnnagy

4
main ()이 아닌 _main ()을 작성했는지 확인하십시오
vijay athithya

2
최신 버전 pip3에서는 main()로 이동합니다 pip._internal. 가져 오기 문을 변경해야합니다from pip._internal import main
Yossarian42

2
매력처럼 일했다! 감사합니다
mahesh nanayakkara

69

데비안, Linux Mint 사용자 우분투 제품군

의 Anthony의 설명 덕분에 원래 시스템 pip (/ usr / bin / 및 dist-packages /에 있음)를 유지하고 수동으로 설치된 pip (~ / .local /에 있음)를 제거하여 충돌을 해결할 수 있습니다.

$ python3 -m pip uninstall pip

python3-pip데비안 패키지의 Ubuntu / Debian pip v8.1.1 (16.04) $ pip3 -V은 최신 pip v10.0.1과 동일한 검색 결과를 표시하며 PyPI의 최신 모듈을 올바르게 설치합니다. 그것은 작업이 pip(이미 $ PATH에) 명령 플러스 좋은를 --user보면 2016 년 이후 패치 - 기본적으로 옵션 핍 릴리스 노트 의 최신 버전은 사용의 경우 특정 버그 수정 및 일부 새로운 기능에 대해 대부분이다 그래서 하지 모두가 아직 핍 업그레이드를 서두르어야합니다. 그리고 새로운 pip 10은 어쨌든 파이썬 가상 환경에 배포 할 수 있습니다.

그러나 pips에 관계없이 OS는 pip 필요없이 APT를 사용하여 일반적인 Python 모듈 (numpy 포함)을 신속하게 설치할 수 있습니다.
$ sudo apt install python3-numpy python3-scipy(시스템 종속성
$ sudo apt install python3-pip이있는 경우)

빠른 적절한 구문 알림 (자세한 내용 man apt은 참조) :
$ sudo apt update(최신 소스에서 Ubuntu 패키지 색인 파일을 다시 동기화하려면)
$ apt search <python-package-name> (사용 가능한 모든 패키지에서 전체 텍스트 검색)
$ apt show <python-package-name>(자세한 패키지 설명을 표시)
$ sudo apt install <python-package-name>

접두사가 붙은 패키지 이름 python-은 Python 2 용입니다. 접두어 python3-는 Python 3 용입니다 (예 : python3-pandas). 수천 개가 있으며 데비안과 우분투에서 통합 테스트를받습니다. 사용자 별 ( pip install --user옵션) 또는 virtualenv / venv 내에 설치하려고하지 않으면 apt가 필요할 수 있습니다. 이러한 시스템 패키지는 너무 가상 envs에서 액세스 할 수 있습니다 VIRTUALENV은 우아하게 envs 모듈의 사본을 제공하지 않는 경우 수입에 시스템 libs와를 사용하여 다시 떨어질 것이다. 사용자 별 설치 (pip 포함 --user) 사용자 단위 모듈 ~/.local/lib도 재정의됩니다.

이것은 시스템 전체 설치 이기 때문에 거의 제거 할 필요가 없습니다 (OS 종속성에주의 할 필요가 있음). APT는 필요한 모든 시스템 라이브러리 및 C 확장을 추적하고 제공하지만 pip를 사용하면 그러한 보장없으므로 많은 시스템 종속성이있는 패키지 (예 : scipy 또는 matplotlib)에 편리합니다 .

사실, 시스템 전체의 파이썬 패키지 (사용자 별, 홈 디렉토리 수준 이하)와 달리 Ubuntu sudo pip OS를 중단하지 않기 위해 APT 패키지 관리자 () 대신 APT 패키지 관리자를 사용하여 APT 가 OS를 저장하는 디렉토리를 sudo pip3대상으로합니다 . /usr/lib/python3/dist-packages민감한 모듈. 최신 데비안 / 우분투 릴리스는 Python 3에 크게 의존하므로 사전 설치된 모듈은 관리되며 apt변경해서는 안됩니다.

따라서 pip3 install명령 을 사용하는 경우 virtualenv ( sudo apt install python3-virtualenv) 또는 Python3 내장 ( -m venv) 또는 사용자 별 수준 ( --userpip 옵션, 우분투에서 기본값 으로 제공됨) 과 같은 격리 된 가상 개발 환경에서 실행되는지 확인하십시오 2016 이후 PIP),하지만 하지 시스템 전체 (절대 sudo pip3!), 핍 때문에 를 방해 APT가 패키지 관리자의 작동이 우분투 운영 체제에 영향을 줄 수있는 구성 요소를 시스템에 사용되는 파이썬 모듈이 예기치 않게 변경 될 때. 행운을 빕니다!


P. S. 모두는 상단의 '이상적'용액 (데비안 / 우분투 방법)에 대한 것이다.

여전히 새 pip3 v10을 독점적으로 사용하려는 경우 3 가지 빠른 해결 방법이 있습니다.

  • 새 bash 세션 (새 터미널 탭 또는 유형 bash)을 열면 pip3 v10을 사용할 수있게됩니다 (참조 pip3 -V). 데비안의 pip3 v8은 계속 설치되어 있지만 고장입니다. 또는
  • $ hash -d pip3 && pip3 -V $ PATH에서 pip3 경로 이름을 새로 고치는 명령 입니다. 데비안의 pip3 v8은 계속 설치되어 있지만 고장입니다. 또는
  • $ sudo apt remove python3-pip && hash -d pip3새로운 pip3 v10을 위해 데비안의 pip3 v8을 완전히 제거 하는 명령 입니다.

참고 :--user virtualenv가 아닌 한, 데비안이 제공하지 않은 pip에 항상 플래그 를 추가해야합니다 ! ( ~/.local/2016 년 이후로 debian / ubuntu 제공 python3-pip 및 python-pip에서 기본값으로 python 패키지를 배포합니다 ). virtualenv 외부에서 시스템 전체의 pip 10 사용은 Ubuntu / Debian에서 실제로 지원되지 않습니다. 절대로 sudo pip3!

자세한 내용은
https://github.com/pypa/pip/issues/5221#issuecomment-382069604
https://github.com/pypa/pip/issues/5240#issuecomment-381673100


업그레이드 된 버전의 pip 로컬 버전을 사용 하여 --user(즉,없는 sudo경우) 설치된 apt를 실행하는 데 영향을 미치는 이유를 이해할 수 있습니까 pip? 나는 그 둘이 공존 할 것이라고 생각했다. 그러나이 요점에서 알 수 있듯이 apt가 설치된 후 하나가 중단되었습니다 python3 -m pip install --user --upgrade pip. 나는 해결책을 찾고 있지 않다-나는 여기서 일어나는 일을 이해하는 것이 정말로 궁금하다.
George Hawkins

1
@George pip 라이브러리와이를 가져 오는 랩퍼 사이의 불일치로 인해 발생합니다. 시스템 솔루션을 즉시 적용하지 않고 시스템 pip 명령을 실행하려고 시도하면 여전히 실행하도록 설정된 OS 시스템 $ PATH에 따라 ( ) /usr/bin/pip3로 설치된 스크립트 대신 적절한 시스템 버전의 pip 래퍼 스크립트를 호출합니다 . 래퍼의 시스템 버전이지만 라이브러리는 아닙니다.--user~/.local/bin/pip*
Alex C.

2
@George 이것은 ~/.local/lib/python3.?/site-packages/pip상대적으로 파이썬 가져 오기에서 시스템보다 우선 하는 최신 pip 패키지가 설치되어 있기 때문입니다 (사용자 로컬 사이트는 전역 라이브러리보다 우선합니다). 그리고 이전 래퍼는 최신 버전의 pip 패키지에 대해 클래스 또는 클래스를 시도 from pip import main하지 않으므로 gist의 pip 명령은로 실패합니다 . 따라서 두 핍이 디스크에 공존 할 수 있지만 원래 시스템의 기능은 "손상"됩니다.from pip._internal__main__ImportError: cannot import name 'main'
Alex C.

일에 대한 --user. pip install --user나를 위해 무엇을 했습니까? (필자는 파이썬 2.7, 파이썬 3.6 및 파이썬 3.7, 모든 우분투 18.04 LTS에 설치되어 있습니다.)
스티븐 G Tuggy

46

한 단계로만 해결됩니다.

나도이 문제에 직면했지만 시간을 낭비하지 않고 하나의 명령으로 간단히 해결할 수 있으며 여러 시스템에서 시도했지만이 문제에 대한 가장 깨끗한 솔루션입니다. 그리고 그것은 :

python3 :- sudo python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall.

이것에 의해을 사용하여 간단하게 패키지를 설치할 수 있습니다 pip3. 사용을 확인하십시오 pip3 --version.

이전 버전의 경우 다음을 사용하십시오 sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall..

이것에 의해, 당신은 간단하게를 사용하여 패키지를 설치할 수 있습니다 pip. 사용을 확인하십시오 pip --version.


31

python -m pip install대신에 사용pip install

예:

python -m pip install --user somepackage
python3 -m pip install --user somepackage

pip(RESP. pip3) 실행 파일은 배포판에 의해 (제공되는 python-pip우분투 16.04에 패키지)와에 위치 /usr/bin/pip.

따라서 pippip를 업그레이드 할 때 패키지 자체 가 최신 상태로 유지되지 않아 중단 될 수 있습니다.

다음 python -m pip과 같이 직접 사용하는 경우 :

python -m pip install --user somepackage
python3 -m pip install --user somepackage

파이썬 경로를 통과하고 최신 버전의 pip를 찾아 해당 파일을 실행합니다.

파일 import은를 통해 실행 가능하다는 사실에 의존 하지만 매우 표준적인 유형의 인터페이스이므로 해커 데비안 스크립트보다 깨질 가능성이 적습니다.

그런 다음 다음 별칭을 추가하는 것이 좋습니다 .bashrc.

pip() ( python -m pip "$@" )
pip3() ( python3 -m pip "$@" )

Ubuntu 18.04 /usr/bin/pip3파일은 다음을 수행합니다.

from pip import main

아마도 파산 한 지점에서 main제거 되었을 pip것입니다.

주요 pip 커밋은 다음과 같습니다. 95bcf8c5f6394298035a7332c441868f3b0169f4 " pip 18.0에 들어간 모든 내부 API를 pip._internal로 이동"

pip39.0.1에서 18.0로 업데이트 한 후 Ubuntu 16.04에서 테스트되었습니다 .

pyenv

그러나 궁극적으로 심각한 파이썬 개발을 위해서는 pyenv + virtualenv로 자체 로컬 Python을 설치하는 것이 좋습니다.이 스크립트는 다음 우분투 버그를 피할 수도 있습니다. /ubuntu/682869/how-do-i- 다른 파이썬 설치 버전 사용 -apt-get / 1195153 # 1195153


3
5 시간의 검색 후, 이것은 나를 위해 일했습니다. 당신이 나에게 주소를 보내면 나는 당신에게 꽃을 전달할 수 있습니다. 감사합니다.
cagri

18

pip를 다시 설치하면이 문제를 해결할 수 있습니다.

다음 명령 행 명령 중 하나를 사용하여 pip를 다시 설치하십시오.

파이썬 2 :

python -m pip uninstall pip && sudo apt install python-pip --reinstall

파이썬 3 :

 python3 -m pip uninstall pip && sudo apt install python3-pip --reinstall


8

sudo apt는 있지만 sudo pip는없는 시스템에서 실행 중입니다. pip의 조언을 따르면 같은 상황에 처하게됩니다.

pip 버전 8.1.1을 사용하고 있지만 18.0을 사용할 수 있습니다. 'pip install --upgrade pip'명령을 통한 업그레이드를 고려해야합니다.

관리자 권한이 충분하지 않기 때문에 다른 수정 프로그램 중 어느 것도 효과가 없었습니다. 그러나 몇 가지 사항을 읽지 못했습니다.

  • 나는 이것을하지 않아야합니다. 물론, 핍이 나에게 말했다. 거짓말했다.
  • --user를 사용하면 사용자 전용 디렉토리에 중점을 두어 많은 문제를 해결합니다.

그래서이 명령 줄을 사용하여 원래 위치로 되돌릴 수 있습니다. 8.1.1이 아닌 다른 버전을 사용하고 있다면 분명히 해당 부분을 변경하고 싶을 것입니다.

python -m pip install --force-reinstall pip==8.1.1 --user

그것은 나를 위해 일한 유일한 것이지만 완벽하게 작동했습니다!


7

로 복구 python3 -m pip install --user pip==9.0.1(또는 작동 한 버전)


5

새로운 LXC (strech)를 사용하여 Pixelbook에서도 같은 일이 일어났습니다. 이 솔루션은 허용되는 솔루션과 매우 유사하며 한 가지 미묘한 차이가 있으므로 pip3이 고정되어 있습니다.

sudo python3 -m pip install --upgrade pip

그것은 버전을 올렸고 이제는 예상대로 작동합니다.

여기에서 찾았습니다 ... Python.org : pip가 최신인지 확인하십시오 .


4

우분투 16.04 시스템에서 동일한 문제를 만났습니다. 다음 명령으로 pip를 다시 설치하여 문제를 해결했습니다.

curl https://bootstrap.pypa.io/get-pip.py | sudo python3


그것은 당신이 소스에서 설치한다는 이점을 가지고 있으며, 위의 어느 것도 깨끗한 빈 데비안 9 (전용 서버 제공 업체의)에서 작동하지 않았습니다.
Peter Rosemann

슈퍼 사용자에게 인터넷 컬링, 무엇이 잘못 될 수 있습니까!
Sum1sAdmin 16:23에

3

위의 명령은 저에게 효과적이지 않았지만 매우 도움이되었습니다.

sudo apt purge python3-pip
sudo rm -rf '/usr/lib/python3/dist-packages/pip'  
sudo apt install python3-pip
cd
cd .local/lib/python3/site-packages
sudo rm -rf pip*  
cd
cd .local/lib/python3.5/site-packages
sudo rm -rf pip*  
sudo pip3 install jupyter

2

Ubuntu 18.04.1 Bionic Beaver에서 올바른 환경을 얻으려면 로그 아웃했다가 다시 로그인해야합니다 (다시 시작하지 않아도 됨).

$ sudo apt install python-pip

$ pip --version
pip 9.0.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip install --upgrade pip

$ pip --version
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ exit
<login>

$ pip --version
pip 18.1 from /home/test/.local/lib/python2.7/site-packages/pip (python 2.7)

1

sudo apt remove python3-pip 그런 다음 사용 pip합니다.

 ~ sudo pip install pip --upgrade
[sudo] password for sen: 
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name 'main'
  ~ sudo apt remove python3-pip   
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libexpat1-dev libpython3-dev libpython3.5-dev python-pip-whl python3-dev python3-wheel
  python3.5-dev
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  python3-pip
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 569 kB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 215769 files and directories currently installed.)
Removing python3-pip (8.1.1-2ubuntu0.4) ...
Processing triggers for man-db (2.7.5-1) ...
  ~ pip

Usage:   
  pip <command> [options]

1
pip파이썬 2 때문 입니다. OP는 pip3Python 3 버전의를 사용 하여 pip방금 제거했습니다. 이 두 가지는 서로 다르며 상호 교환이 불가능합니다.
Neinstein

1

Python 버전 2.7의 경우 @Anthony 솔루션은 다음과 같이 python3python 으로 변경하여 완벽하게 작동 합니다.

sudo python -m pip uninstall pip && sudo apt install python-pip --reinstall

1

사용하여 오류를 해결하는 데 도움 pip3이 된 것은 다음 과 같습니다.

sudo cp -v /usr/local/bin/pip3 /usr/bin/pip3

모든 것이 작동합니다 :

 demon@UbuntuHP:~$ pip -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

 demon@UbuntuHP:~$ pip2 -V
 pip 10.0.1 from /home/demon/.local/lib/python2.7/site-packages/pip (python 2.7)

 demon@UbuntuHP:~$ pip3 -V
 pip 10.0.1 from /usr/local/lib/python3.5/dist-packages/pip (python 3.5)

pip의 새로운 10.0.1 버전은 / usr / bin에서 바이너리를 업데이트하지 않습니까? (그렇지 않은 것 같습니다)

편집 : 우분투 18.04에서도 동일한 문제가 발생합니다. 내가 찾은 가장 좋은 해결책 은 다음과 같이 pip 바이너리 /home/<user/.local/bin를 ( /usr/local/bin또는 /usr/bin선호도에 따라) 심볼릭 링크하는 것입니다.

ln -sv /home/<user>/.local/bin/pip /usr/local/bin/pip
ln -sv /home/<user>/.local/bin/pip2 /usr/local/bin/pip2
ln -sv /home/<user>/.local/bin/pip2.7 /usr/local/bin/pip2.7
ln -sv /home/<user>/.local/bin/pip3 /usr/local/bin/pip3
ln -sv /home/<user>/.local/bin/pip3.6 /usr/local/bin/pip3.6

참고 :<user> 현재 실행중인 사용자로 교체

관련 버전 (최신)은 다음과 같습니다.

버전 3.6 :

/home/demon/.local/lib/python3.6/site-packages/pip (python 3.6)

버전 2.7 :

/home/demon/.local/lib/python2.7/site-packages/pip (파이썬 2.7)


이것은 내 문제를 해결했습니다. 다른 답변은 그렇지 않았습니다.
Amin Husni 2016 년

1
/usr/bin그래도 파일을 직접 엉망으로 만들면 안됩니다 . 그리고 이전이 아니라면 당신의 PATH잘못 입니다. /usr/local/bin/usr/bin
tripleee

에 pip 바이너리가 없습니다 /usr/local/bin. 새 버전 에만 /home/<user>/.local/bin있거나 /home/<user>/.local/lib/python<version>/site-packages/pip새 버전에 있습니다 (v10.0 +은에서 바이너리를 업데이트하지 않습니다 /usr/bin). 따라서 이유는 바이너리 요구의 사본 또는 심볼릭 링크는 년 중 생성 될 /usr/bin또는 /usr/local/bin핍 명령 줄에서 세계적으로 실행할 수 있도록 (사용자 환경에 따라 다름).
cryptoboy

pip 바이너리 디렉토리가 존재하며 다음 링크에서 링크 / 복사되어야합니다 : demon @ Bionic18 : ~ / .local / bin $ ls pip pip2 pip2.7 pip3 pip3.6 pip바이너리는 시스템에 설치된 최신 버전
cryptoboy


0

나는이 같은 오류가 있었지만 python -m pip여전히 작동하고 있으므로 핵 옵션으로 수정했습니다 sudo python -m pip install --upgrade pip. 그것은 나를 위해 그것을했다.


0

가치있는 것에 대해, 나는 pip(not pip2또는 pip3)에 문제가있었습니다 .

$ pip -V
Traceback (most recent call last):
  File "/usr/bin/pip", line 9, in <module>
    from pip import main
ImportError: cannot import name main

$ pip2 -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)

$ pip3 -V
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

어떻게 든 (어떻게 기억이 안 나는지) 나는 ~/.local디렉토리 에 파이썬 물건을 설치했다 . 거기에서 pip 디렉토리를 제거한 후 pip다시 작업을 시작했습니다.

$ rm -rf /home/precor/.local/lib/python2.7/site-packages/pip
$ pip -V
pip 8.1.1 from /usr/lib/python2.7/dist-packages (python 2.7)


0

당신은 이것을 시도 할 수 있습니다 :

sudo ln -sf $( type -P pip ) /usr/bin/pip

3
이 코드는 질문에 대한 답변을 제공 할 수 있지만 작동 방식 및 사용시기를 설명하는 컨텍스트를 포함하는 것이 좋습니다. 코드 전용 답변은 장기적으로 유용하지 않습니다.
Giulio Caccin

0

또한 시스템 pip pip3을 9.0.1에서 19.2.3 으로 업그레이드하려고 할 때이 문제가 발생 합니다.

실행 한 후 pip3 install --upgrade pip, pip버전 19.2.3가된다. 그러나 최신 버전 main()으로 옮겨 졌으며 깨진 상태 pip._internal로 남아 pip3있습니다.

따라서 파일 /usr/bin/pip3에서 line 9: from pip import main로 바꾸십시오 from pip._internal import main. 문제가 해결 될 것입니다.python2-pip . (우분투 18.04 배포판에서 테스트)

@Vincent H.의 답변 에 따르면



0

pip 및 pip3 경로를 사용하여 간단하게 수정할 수 있습니다 update-alternatives

가장 먼저 확인해야 할 것은 현재 $PATH 실행 상태 echo $PATH이며/usr/local/bin pip3 및 pip가 일반적으로 어디에 있는지 있습니다.

시스템이 여기 찾고 변화가 /bin/pip그리고 /bin/pip3 내가 당신에 추가하여 PATH를 수정 말할 것이다 그래서 ~/.bash_profile파일은이 지속 이렇게

export PATH=$PATH:/usr/local/bin 그런 다음 확인이 고정되어 which pip있고which pip3

그렇지 않으면 update-alternatives마지막으로 수정하는 데 사용 하십시오.

update-alternatives --install /bin/pip3 pip3 /usr/local/bin/pip3 30

pip를 pip3으로 가리 키려면

update-alternatives --install /bin/pip pip /usr/local/bin/pip3 30

0

이것은 나를 위해 일했다!

hash -r pip # or hash -d pip

이제 pip 설치 버전을 제거하고 다음 명령을 사용하여 다시 설치하십시오.

python -m pip uninstall pip  # sudo
sudo apt install --reinstall python-pip

pip가 깨진 경우 다음을 사용하십시오.

python -m pip install --force-reinstall pip

그것이 도움이되기를 바랍니다!


-1

pip._internal에서 메인 가져 오기

from pip._internal import main

핍 코드 편집

sudo nano /usr/bin/pip3

답변을 편집하고 더 잘 지정할 수 있습니까? 파일을 편집하는 방법은 명확하지 않습니다 /usr/bin/pip3...
M. Volf

-1

@cryptoboy가 말했듯이 설치 한 pip / python 버전을 확인하십시오.

 demon@UbuntuHP:~$ pip -V
 demon@UbuntuHP:~$ pip2 -V
 demon@UbuntuHP:~$ pip3 -V

그런 다음 .local / lib / 폴더에서 불필요한 라이브러리를 확인하십시오.

최신 Kubuntu로 마이그레이션하고 홈 디렉토리에 .local / lib / python2.7 / 폴더가 있었을 때 설정을 백업했습니다. Python 3.6을 설치했습니다. 방금 이전 폴더를 제거했으며 이제 모든 것이 잘 작동합니다!


-1

데비안에서는 먼저 apt를 업데이트해야합니다 ....

sudo apt-get update -qq
sudo apt-get install python-pip -qq
sudo pip install pip --upgrade --quiet
sudo pip2 install virtualenv --quiet

'sudo apt-get update -qq'를 건너 뛰면 핍이 손상되고 '메인을 찾을 수 없음'오류가 표시됩니다.


-1

이 오류는 권한이있는 것일 수 있습니다. 따라서 -H 플래그를 사용 하여 명령 실행을 테스트하십시오 .

sudo -H pip3 install numpy

이 질문은 ImportError는 권한 오류가 아니라고 말합니다.
Anthony Sottile

-1

pip 명령을 실행하기 전에 다음 명령을 사용하십시오.

hash -d pip

작동합니다


1
모호한 주석을 제거 / 제거하는 방법을 분명히 설명해 주시겠습니까?
elf
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.