'ImportError: IncompleteRead adı içe aktarılamıyor' seçeneğini nasıl düzeltirim?


284

pipVeya ile bir şey yüklemeye çalıştığımda 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'

Bir Ubuntu 14.10 sistemim var.

Bu sorunu nasıl düzeltebilirim?



@cel: Bu bir kopya değil, çünkü Windows için ve ben zaten gördüm.
Martin Thoma

Kabul edilen yanıttaki bağlantı ubuntu'nun sorun izleyicisine işaret ediyor - bu nedenle bu sorun pencerelere özgü görünmüyor. OPÖnerildiği gibi python'u yeniden yüklemeyi denediniz mi?
cel

@ cel Boş ver, oldukça basit bir çözüm buldum.
Martin Thoma

4
... hangisi neydi?
Jonathan Hartley

Yanıtlar:


433

İken bu önceki cevabı nedeni olabilir, bu Kesik bir solüsyon (olduğu gibi benim için çalıştı Ubuntu 14.04):

İlk olarak paketi paket yöneticisinden kaldırın:

# apt-get remove python-pip

Ve son sürümü yan yana yükleyin:

# easy_install pip

(@Aufziehvogel, @JunchaoGu sayesinde)


10
İlgilenenler için:: --upgrade (-U)kuvvet yükseltme (en son sürümler için PyPI'yi arar)
Martin Thoma

11
Sadece dikkatli olmalısınız, yerel paket yöneticinizi (apt) yan yana kurarak karıştırmayın easy_install. Mümkünse, tavsiye ederim apt-get remove pipve sonra easy_install pip.
Aufziehvogel

16
@Aufziehvogelapt-get remove python-pip
eggonlegs

7
Temel olarak bu cevap durumu daha da kötüleştiriyor.
hek2mgl

7
Benim için bu 'apt-get remove python3-pip', ardından 'apt-get install python3-setuptools', ardından 'easy_install3 pip'
Jason Pepas

85

Bu sorunun nedeni, pip kurulumunuz ile isteklerinizin yüklenmesi arasındaki uyumsuzluktur.

İstekler doğrultusunda 2.4.0 sürümü requests.compat.IncompleteRead kaldırılmıştır . Pip'in eski sürümleri, örneğin Temmuz 2014'ten itibaren , hala güveniyordu IncompleteRead. Gelen geçerli sürüm pip, ithalatı IncompleteReadkaldırılmıştır.

Suçlanacak olan ya:

  • genel API'yı çok hızlı bir şekilde kaldırmak için istekler
  • Ubuntu pipi çok yavaş güncellemek için

Bu sorunu, ya Ubuntu üzerinden pip güncelleyerek (daha yeni bir sürüm varsa) ya da Ubuntu'dan bir yana pip kurarak çözebilirsiniz.


3
pip install istekleri -U, sorunu düzeltti.
jonincanada

2
@jonincanada pip çöktüğünde nasıl pip komutu çalıştırmam gerekiyor?
Peter

80

Pip3'ü sabitlemek için (Ubuntu 14.10 üzerinde çalıştı):

easy_install3 -U pip

2
Bu Ubuntu 14.04'te de çalışıyor. Bu /usr/local/bin/pipPython3 için bir yükler unutmayın; daha önce pipbir Python 2 sürümü çalıştırıyordu. Ben /usr/local/bin/piptamamen devre dışı bırakarak düzeltildi, bu yüzden açıkça çalıştırmak zorunda pip2veya pip3.
Nelson

3
Debian Jessieiçin python2.7- pip sudo apt-get purge python-requestsapt-get ile temizlendikten ve yeniden yüklendikten sonra (başka bir cevapta gösterilir), koşma easy_install -U piphile yaptı.
MikeiLL

1
Kendim için her şeyden çok; bu benim için işe yarayan düzeltmedir.
Hamid

Tıkır tıkır çalışıyor!
Başarısız Bilim İnsanı

33

Veya hepsini kaldırabilirsiniz requests.

Örneğin:

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

Bu benim için çalıştı. Python-pip kurulum isteklerinin ilişkisinin ne olduğunu öğrenebilir miyim
Roselyn Verbo Domingo

requestsModüle bakarsanız , bu modülün / lib'in HTTP istekleri göndermek için kullanıldığını göreceksiniz. pipmodül , sizin tarafınızdan kaldırılan requests`` Python Paket Dizini . And the isteklerinden '' paketleri indirmek için modülün pipyüklenmesi gereken başka bir sürümüne sahip olmalıdır.
Marius Stanca

Bu benim için de işe yaradı; pipRaspbian Jessie'nin yeni / yeni bir kurulumuna (Raspberry Pi için) bağımlılıkları yüklemek için modülü kullanan bir Ansible playbook çalıştırırken hatayla karşılaştım . İstek dağıtım paketini sildikten sonra her şey harika çalışıyor.
geerlingguy

Benim için de çalıştı. İşletim sistemimi wheezy'den jessie'ye yükselttim, bu yüzden bir şey kırmış olabilir. Yukarıda belirtilen üç yöntem benim için ilk başta işe yaramadı. Ancak yöntem 3 ve sonra rm -rf komutunu kullandıysanız işe yaradığını buldum.
Eamonn Kenny

bu işi yaptı, yine de debian repo'dan pip tutarak. çok teşekkürler!
Stefan

23

Ubuntu 14.04'te , dokümanlarda açıklandığı gibi pip kurulum önyükleme komut dosyasını kullanarak bunu çözdüm

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

Bu bir geliştirme ortamı için uygun bir çözümdür.


Bu sorunu çözer. LTS sürümünde böyle bir sorunun hala açık olması çok kötü.
ganesshkumar

Ubuntu 15'te bu sorunu yaşadım ve çalışıyor gibi görünüyor. Get-pip.py betiği zaten aradığım pakete sahip olduğumu söyledi ama sudo'nun çalıştığına inandığım -H bayrağıyla kullanmanızı önerdi.
Rick Henderson

17

Sorun Python modülü requests. Tarafından sabitlenebilir

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

Python 3 ile bu sorunu yaşıyorsanız, python3bunun yerine yazmak zorundasınız python.


4
Kesinlikle güzel bir çözüm.
Tinker Sun

8
Bilmek güzel purge. Bu hala pip çalışan bir sürümünü yüklemedi ve ben from requests.compat import IncompleteReadpiton CLI çalıştırmak için çalıştı aynı hata verdi. Yukarıdaki komutları çalıştırdıktan sonra ne işe easy_install -U pip
yaradı

Bu, easy_install içermeyen ve ilk önce pip'i kaldırarak sisteminizi etkilemeyen en iyi çözümdür.
Marc Tamsky

9

Bu senin için işe yaramalı. Bu basit adımları izleyin.

İlk olarak, kurulu olan pip'i kaldıralım, böylece herhangi bir hataya neden olmaz.

Terminal'i açın.

Tür: sudo apt-get kaldır python-pip

Kurulu olan pip'i kaldırır.

Yöntem 1

Adım: 1 sudo easy_install -U pip

Pip son sürümünü yükleyecektir.

Ve adresini döndürür: Yüklü /usr/local/lib/python2.7/dist-packages/pip-6.1.1-py2.7.egg

veya

Yöntem-2

Adım: 1 bu bağlantıya gidin .

Adım: 2 get-pip.py adıyla >> Farklı kaydet .. seçeneğini sağ tıklayın.

Adım: 3 get-pip.py dosyanızla aynı dizine gitmek için: cd kullanın

Adım: 4 kullanım: sudo python get-pip.py

Pip son sürümünü yükleyecektir.

veya

Yöntem-3

Adım: 1 kullanım: sudo apt-get install python-pip

Pip son sürümünü yükleyecektir.


Cevabınıza biraz daha ayrıntı ekleyebilir misiniz?
abarisone

Elbette. Ama nerede kafan karıştı?
kiok46

Teşekkürler python-pip kaldırıldı ve sonra easy_install kullanılır. pip tekrar çalışıyor.
phansen

@phansen no problem (y)
kiok46

8

Sadece koşmak easy_install -U pipsorunumu çözdü.


2
Eski bir yorum sadece bu çok basit, yararlı bir çözüm bulmak için çeşitli yazılımlar tasfiye apt-almak bir grup insan aracılığıyla beklemek zorunda kaldım ifade etmek için yorum. Soru sorulduğunda tüm sınırlamaların ne olduğundan emin değilim, ama bu işe yaradı .
mttpgn

5

Eski bir sürümünüzün olup olmadığını kontrol requestsedin ~/.local/lib/python2.7/site-packages/ve durum buysa kaldırın (python sürümünüzü yansıtacak şekilde değiştirin). Bu benim için sorunu çözdü.


5

Ubuntu'daki pip sürümüm şunları önerir:

  pip install --upgrade pip

4
Pip tamamen bu hatayla doluydu gibi benim için çalışmadı. Herhangi bir kullanım (çift pip --version) cannot import name IncompleteReadhatayı görüntüler , bu nedenle pip ne yazık ki kendini yükseltemez
Abe Voelker

Aslında bu Ubuntu 14.04'ün (bootstrap from minbase) temiz bir kurulumu üzerinde çalışıyor . Bir şekilde modülü pipreferans vermeden kendini güncellemeyi başarıyor requests.
ony

Bu kırık bir pip ile çalışmaz - tavuk veya yumurta ikilemi.
Arnie97

4

Windows'da, bu bir yönetim isteminden çalıştı:

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

Takılı / yeniden kurulmuş python-requestsve python3-requestshangi sabit boru3. Python3.6beta sonra python3.6rc yükleme hatası yapmıştı.
noobninja

3

Her cevaptan kaçınarak denedim ama başaramadım.

Bunu yaptı ve çalıştı

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

Bundan sonra pip ile virtualenv kurdum

sudo pip install virtualenv

Üzerinde çalıştığım virtualenv'i kurdum ve paket kolayca kuruldu. Kullanarak virtualenv'e girin source /bin/activate ve paketinizi yüklemeyi deneyin, örneğin:

pip install terminado

Benim için çalıştı, python3 değil python2.7 kullanıyordum


0

Terminal pencerelerinden herhangi birinde canlı bir python yorumlayıcı olup olmadığını kontrol edin. Eğer öyleyse öldür ve sudo pipbenim için hangisinin işe yaradığını dene .


0
  1. sudo apt-get Kaldır python-pip
  2. sudo easy_install istekleri == 2.3.0
  3. sudo uygun-get install python-pip


0

CentOS için bunu kullandım ve çalıştı, lütfen aşağıdaki komutları kullanın:

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

(tüm bu kütüphanelerin kaldırıldığını doğrulayın)

sudo yum install python-urllib3
sudo yum install python-requests
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.