'ImportError : 가져올 수없는 이름 IncompleteRead'는 어떻게 수정합니까?


284

pip또는 로 설치하려고하면 다음과 같은 결과 pip3가 나타납니다.

$ sudo pip3 install python3-tk
Traceback (most recent call last):
  File "/usr/bin/pip3", line 9, in <module>
    load_entry_point('pip==1.5.6', 'console_scripts', 'pip3')()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 356, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2476, in load_entry_point
    return ep.load()
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 2190, in load
    ['__name__'])
  File "/usr/lib/python3/dist-packages/pip/__init__.py", line 61, in <module>
    from pip.vcs import git, mercurial, subversion, bazaar  # noqa
  File "/usr/lib/python3/dist-packages/pip/vcs/mercurial.py", line 9, in <module>
    from pip.download import path_to_url
  File "/usr/lib/python3/dist-packages/pip/download.py", line 25, in <module>
    from requests.compat import IncompleteRead
ImportError: cannot import name 'IncompleteRead'

우분투 14.10 시스템이 있습니다.

이 문제를 어떻게 해결할 수 있습니까?



@ cel : 이것은 Windows 용이며 복제본이 아니며 이미 보았습니다.
Martin Thoma

허용 된 답변의 링크는 우분투의 이슈 트래커를 가리 키 므로이 문제는 Windows에만 국한되지 않습니다. OP제안 대로 파이썬을 다시 설치 해 보셨습니까 ?
cel December

@cel 걱정하지 마십시오. 방금 간단한 솔루션을 찾았습니다.
Martin Thoma

4
... 무엇입니까?
Jonathan Hartley

답변:


433

하지만 이 이전의 대답은 이유를 수 있습니다,이 잘린는 솔루션 (같이 나를 위해 일한 Ubuntu 14.04) :

먼저 패키지 관리자에서 패키지를 제거하십시오.

# apt-get remove python-pip

그런 다음 최신 버전을 나란히 설치하십시오.

# easy_install pip

(@Aufziehvogel, @JunchaoGu 덕분에)


10
관심있는 사람 : --upgrade (-U): 강제 업그레이드 (최신 버전의 PyPI 검색)
Martin Thoma

11
를 통해 설치하여 기본 패키지 관리자 (apt)를 혼동하지 않도록주의해야합니다 easy_install. 가능하다면, 나는에 권하고 싶습니다 apt-get remove pipeasy_install pip.
Aufziehvogel 2019 년

16
@Aufziehvogelapt-get remove python-pip
eggonlegs

7
기본적 으로이 답변은 상황을 더욱 악화시킵니다.
hek2mgl

7
나를 위해, 이것은 'apt-get remove python3-pip'와 'apt-get install python3-setuptools', 'easy_install3 pip'가 이어졌습니다
Jason Pepas

85

이 문제는 pip 설치와 요청 설치가 일치하지 않기 때문에 발생합니다.

요청으로 버전 2.4.0 requests.compat.IncompleteRead 이 제거되었습니다 . 예 들어 2014 년 7 월 과 같은 이전 버전의 pip 는 여전히 IncompleteRead. 에서 현재 버전 핍의 수입이 IncompleteRead제거되었습니다.

따라서 비난하는 사람은 다음 중 하나입니다.

  • 공개 API를 너무 빨리 제거하기위한 요청
  • 핍을 너무 느리게 업데이트하기위한 우분투

Ubuntu를 통해 pip를 업데이트하거나 (최신 버전이있는 경우) Ubuntu와 별도로 pip를 설치하면이 문제를 해결할 수 있습니다.


3
pip 설치 요청 -U, 문제가 해결되었습니다.
jonincanada

2
@ jonincanada pip가 충돌 할 때 어떻게 pip 명령을 실행해야합니까?
피터

80

pip3 수정 (Ubuntu 14.10에서 작동) :

easy_install3 -U pip

2
이것은 우분투 14.04에서도 작동합니다. 이것은 /usr/local/bin/pipPython3 용으로 설치됩니다 . 이전 pip에는 Python 2 버전을 실행했습니다. 나는 불가능하여 고정 /usr/local/bin/pipI 명시 적으로 실행해야하므로 완전히 pip2pip3.
Nelson

3
데비안 Jessie에서 python2.7-pip를 제거 sudo apt-get purge python-requests하고 apt-get (다른 답변으로 표시)으로 다시 설치 한 후 실행 easy_install -U pip하면 트릭을 수행했습니다.
MikeiLL

1
나 자신을 위해 무엇보다; 이것은 나를 위해 일한 수정입니다.
Hamid

매력처럼 작동합니다!
실패한 과학자

33

또는 모두 제거 할 수 있습니다 requests.

예를 들면 다음과 같습니다.

  • rm -rf /usr/local/lib/python2.7/dist-packages/requests*

이것은 나를 위해 일했습니다. 파이썬 - 핍의 설치에 대한 요청의 관계가 무엇인지 알고있다
Roselyn VERBO 도밍고에게

requests모듈 을 살펴보면 이 모듈 / lib가 HTTP 요청 전송에 사용되고 있음을 알 수 있습니다. pip모듈 은 당신이 제거 해야 할 다른 버전이있는 requests`Python Package Index . And the requests` 에서 패키지를 다운로드하기위한 모듈이 필요 합니다 pip.
Marius Stanca

이것은 나에게도 효과가 있었다. pip모듈을 사용하여 Raspbian Jessie (Raspberry Pi 용)를 새로 설치하거나 새로 설치할 때 종속성을 설치 하는 Ansible 플레이 북을 실행할 때 오류가 발생했습니다 . 요청 dist 패키지를 삭제하면 모든 것이 잘 작동합니다.
geerlingguy

나도 일했다. OS를 wheezy에서 jessie로 업그레이드 했으므로 무언가가 깨졌을 수 있습니다. 위에서 언급 한 세 가지 방법은 처음에는 효과가 없었습니다. 그러나 방법 3을 사용한 다음 rm -rf 명령을 사용하면 작동한다는 것을 알았습니다.
Eamonn Kenny

이것은 여전히 ​​데비안 레포에서 핍을 유지하면서 일을했습니다. 고마워요!
Stefan

23

Ubuntu 14.04 에서 설명서에 설명 된대로 pip 설치 부트 스트랩 스크립트를 사용하여이 문제를 해결했습니다.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

개발 환경에 적합한 솔루션입니다.


이것은 문제를 해결합니다. 이러한 문제가 LTS 버전에서 여전히 열려 있다는 것이 너무 나쁩니다.
ganesshkumar

우분투 15 에서이 문제가 있었고 작동하는 것 같습니다. get-pip.py 스크립트는 이미 찾고있는 패키지가 있지만 sudo를 -H 플래그와 함께 사용한다고 제안했습니다.
Rick Henderson

17

문제는 파이썬 모듈 requests입니다. 그것은에 의해 고칠 수 있습니다

$ sudo apt-get purge python-requests
[now requests and pip gets deinstalled]
$ sudo apt-get install python-requests python-pip

파이썬 3 에서이 문제가 발생하면 python3대신 대신 작성해야합니다 python.


4
절대적으로 좋은 해결책입니다.
Tinker Sun

8
에 대해 알고 멋지다 purge. 이것은 여전히 ​​pip의 작동 버전을 설치하지 않았으며 from requests.compat import IncompleteRead파이썬 CLI에서 실행하려고 할 때 동일한 오류가 발생했습니다. 위의 명령을 실행 한 후 DID 작동 방식easy_install -U pip
MikeiLL

이것은 easy_install을 포함하지 않는 최상의 솔루션이며 pip를 먼저 제거하여 시스템을 중단시키지 않습니다.
Marc Tamsky

9

이것은 당신을 위해 작동합니다. 이 간단한 단계를 따르십시오.

먼저, 이미 설치된 pip를 제거하여 오류가 발생하지 않도록하십시오.

터미널을 엽니 다.

유형 : sudo apt-get python-pip를 제거하십시오.

이미 설치된 pip를 제거합니다.

방법 -1

1 단계 : 1 sudo easy_install -U pip

pip 최신 버전을 설치합니다.

그리고 주소를 반환합니다 : Installed /usr/local/lib/python2.7/dist-packages/pip-6.1.1-py2.7.egg

또는

방법 -2

1 단계 : 1링크 로 이동 하십시오 .

단계 : 2 이름이 get-pip.py 인 >> 다른 이름으로 저장을 마우스 오른쪽 버튼으로 클릭하십시오.

3 단계 : cd를 사용하여 get-pip.py 파일과 동일한 디렉토리로 이동하십시오.

4 단계 : sudo python get-pip.py 사용

pip 최신 버전을 설치합니다.

또는

방법 -3

단계 : 1 사용 : sudo apt-get install python-pip

pip 최신 버전을 설치합니다.


답변에 좀 더 자세한 내용을 추가해 주시겠습니까?
abarisone

확실한. 그러나 어디서 혼란 스러웠습니까?
kiok46

감사합니다 .python-pip를 제거한 다음 easy_install을 사용했습니다. pip가 다시 작동합니다.
phansen

@phansen no problem (y)
kiok46

8

단순히 실행하면 easy_install -U pip내 문제가 해결되었습니다.


2
아주 간단하고 도움이되는 해결책을 찾기 위해 다양한 소프트웨어를 제거하는 사람들의 스레드를 극복해야한다는 놀라움을 표현하기 위해 예전부터 언급했습니다. 질문을 받았을 때 어떤 제한이 있었는지 확실하지 않았지만 이것이 효과가 있었습니다.
mttpgn

5

오래된 버전이 있는지 확인하고 경우 requests에 따라 ~/.local/lib/python2.7/site-packages/제거하십시오 (파이썬 버전을 반영하도록 경로 변경). 이것은 나를 위해 문제를 해결했습니다.


5

우분투에서 내 pip 버전은 다음을 제안합니다.

  pip install --upgrade pip

4
이 오류로 인해 pip가 완전히 지겨워서 나를 위해 작동하지 않았습니다. 모든 사용법 (심지어 pip --version) 에도 cannot import name IncompleteRead오류가 표시 되므로 pip는 슬프게도 스스로 업그레이드 할 수 없습니다.
Abe Voelker

실제로 이것은 Ubuntu 14.04의 새로 설치 (bootstrap from minbase)에서 작동합니다. 어떻게 든 모듈 pip을 참조하지 않고 자체 업데이트를 관리 requests합니다.
ony

깨진 핍 (닭고기 또는 계란 딜레마)에서는 작동하지 않습니다.
Arnie97

4

Windows에서 이것은 관리 프롬프트에서 작동했습니다.

  • 지우다 C:\Python27\Lib\site-packages\requests*
  • easy_install requests==2.3
  • pip install --upgrade pip
  • pip install --upgrade requests

설치 / 재설치 python-requestspython3-requests고정 된 pip3 python3.6beta를 설치 한 다음 python3.6rc를 실수로 실수했습니다.
noobninja

3

나는 모든 대답을 avobe로 시도했지만 그것을 만들 수 없었습니다.

이것을하고 일했다

sudo apt-get purge python-virtualenv
sudo pip install pip -U

그 후 방금 pip로 virtualenv를 설치했습니다.

sudo pip install virtualenv

작업중인 virtualenv를 빌드하고 패키지를 쉽게 설치했습니다. 다음을 사용하여 virtualenv에 들어가서 source /bin/activate 패키지를 설치하십시오.

pip install terminado

python3이 아닌 python2.7을 사용하고 있었지만 나를 위해 일했습니다.


0

터미널 창에 파이썬 인터프리터가 있는지 확인하십시오. 그렇다면 그것을 죽이고 sudo pip나를 위해 일한 것을 시도 하십시오.


0
  1. sudo apt-get python-pip를 제거하십시오
  2. sudo easy_install requests == 2.3.0
  3. sudo apt-get 설치 python-pip


0

CentOS의 경우 이것을 사용했으며 다음 명령을 사용하십시오.

sudo pip uninstall requests
sudo pip uninstall urllib3
sudo yum remove python-urllib3
sudo yum remove python-requests

(모든 해당 라이브러리가 제거되었는지 확인하십시오)

sudo yum install python-urllib3
sudo yum install python-requests
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.