pip bozuldu. DistributionNotFound hatası nasıl düzeltilir?


148

Ne zaman pip kullanmaya çalışsam bir hata alıyorum. Örnek olarak:

$ sudo pip install gevent-websocket

Traceback (most recent call last):  
File "/usr/local/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2675, in <module>
parse_requirements(__requires__), Environment()
File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 552, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pip==0.8.1

Değerini pip == 0.8.2 .. olarak değiştirmek için cazip hissediyorum ama kurulumumu 'hacklemenin' sonuçlarıyla uğraşmak istemiyorum ... python 2.7 çalıştırıyorum ve pip 0.8.2 sürümünde.


Burada acı varsa çok fazla. Basit genel çözüm, https://bootstrap.pypa.io/get-pip.py adresinden yüklenen pip'i indirip ardından bu dosyayı (python kullanarak) çalıştırmaktır. Diğer düzeltmeler sisteme çok bağlıdır ve genellikle karışıktır ve aşağıdaki öneriler genellikle işe yaramaz (iki farklı sistem
çocuğundaki

Yanıtlar:


255

Bu sorunu MacBook'umda buluyorum, sebebi @Stephan'ın dediği gibi pip'i easy_install kurmak için kullanıyorum ve her iki py paketi yönetme aracının karışımı pkg_resources.DistributionNotFoundsoruna yol açtı . Çözüm şudur:

easy_install --upgrade pip

Unutmayın: Py paketlerinizi yönetmek için yukarıdaki araçlardan birini kullanın .


55
Ha bu bana şu hatayı veriyor:pkg_resources.DistributionNotFound: distribute==0.6.36
Timmmm

2
Mac OS X 10.9'da da harika çalışıyor. Teşekkürler!
Anton Babenko

2
A) sudo easy_install --upgrade pip'e ihtiyacınız olduğunu ve b) pip kullandığınızda tekerlekle ilgili hatalar alabileceğinizi fark edebilirsiniz. Bu noktada şuna bakın: stackoverflow.com/questions/20905350/…
mchicago

@PiotrDobrogost Bir şekilde katılmıyorum - bağladığınız makale virtualenv kullanmakla ilgili, aksi takdirde bazilyon paketleriniz var ve uygulamalar arasında performans ve çatışmalar meydana gelebilir - bu durumda virtualenv kullanmak istiyoruz . Bununla birlikte, virtualenv'i yüklemek için, onu herkes için küresel olarak ve dolayısıyla sudo easyinstall yüklemek istiyorsunuz. virtualenv kurulumu için . Bu, virtualenv'in gerçekten çalışmasına izin verir, bu yüzden sanal ortam'ı manuel (ve dolayısıyla bakımı zor) bir kurulum yapmadan başka nasıl kurabiliriz.
mchicago

1
got .. 'sudo easy_install3 --upgrade pip' made it
pavan

31

/ Usr / local / bin / pip içindeki 0.8.2'de 0.8.1'i değiştirdim ve her şey tekrar çalıştı.

__requires__ = 'pip==0.8.2'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('pip==0.8.2', 'console_scripts', 'pip')()
    )

Muhtemelen bana bu baş ağrısına neden olan easy_install aracılığıyla pip yükledim. Bence bugünlerde bunu böyle yapmalısın ..

$ sudo apt-get install python-pip python-dev build-essential 
$ sudo pip install --upgrade pip 
$ sudo pip install --upgrade virtualenv

13
Her zaman işletim sistemi paket yöneticilerini kullanarak saf python paketleri yüklemekten kaçınmaya çalışıyorum - ve size de aynısını yapmanızı tavsiye ederim. Ubuntu / Debian bir zamanlar setuptools paketini kırdı ve insanlar pip kullanarak paketleri kaldıramadıkları için (değişikliklerinden dolayı) bazı baş ağrısına neden oldu.
Hugo Tavares

apt veya yum kullanmak yeterince agnostik değildir! bu sayfadaki stratejiler yerel geliştirme için yeterlidir, ancak lütfen bunu dağıtımlar için yapmayın.
ken

Aynı burada, pip bir Mac'te 1.3.1'e yükseltirken kendini öldürdü, pip ise hala 1.2.1 olduğundan bahsetti ...
Anthony Liekens

@PiotrDobrogost lütfen yukarıdaki yoruma bakın - bu durumda virtualenv'in çalışması için gereklidir.
mchicago

28

Homebrew kullanırken bu sorunu yaşadım. İşte # 26900'ün çözümü

python -m pip install --upgrade --force pip

Bunu hem --user seçeneği ile hem de olmadan (ikincisi sudo gerektirir) denemek faydalı olabilir.
Ray

11

Get-pip komut dosyasıyla yeniden yüklemeyi deneyin:

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

Bu pip Github sayfasından alınmıştır ve benim için çalıştı.


7

CentOS kullanıyorsanız "python-setuptools" YUM paketinin kurulu olduğundan emin olun

yum install python-setuptools

Benim için düzelt.


6

Sorunun kökü genellikle bin(Linux) veyaScripts (Windows) alt dizinindeki . Bunu örnek olarak kendimle karşılaştığım problemi kullanarak açıklayacağım.

Kullanıcı site paketlerime virtualenv 1.10 sürümünü yükledim (sistem site paketleri değil kullanıcı site paketlerinde olması burada alakasızdır)

pdobrogost@host:~$ which virtualenv
/home/users/pdobrogost/.local/bin/virtualenv
pdobrogost@host:~$ virtualenv --version
1.10

1.11 sürümüne yükselttikten sonra aşağıdaki hatayı aldım:

pdobrogost@host:~$ virtualenv --version  
Traceback (most recent call last):   
  File "/home/users/pdobrogost/.local/bin/virtualenv", line 5, in <module>
    from pkg_resources import load_entry_point   
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 2701, in <module>
    return self.__dep_map   
File "build/bdist.linux-x86_64/egg/pkg_resources.py", line 572, in resolve
    if insert: 
pkg_resources.DistributionNotFound: virtualenv==1.10

/home/users/pdobrogost/.local/bin/virtualenvHata mesajında ​​belirtilen dosya şuna benziyordu:

#!/opt/python/2.7.5/bin/python2.7
# EASY-INSTALL-ENTRY-SCRIPT: 'virtualenv==1.10','console_scripts','virtualenv'
__requires__ = 'virtualenv==1.10'
import sys
from pkg_resources import load_entry_point

if __name__ == '__main__':
    sys.exit(
        load_entry_point('virtualenv==1.10', 'console_scripts', 'virtualenv')()
    ) 

Orada, virtualenvbetiğin güncellenmediğini ve hala daha önce virtualenv'nin kurulu 1.10 sürümünü gerektirdiğini görüyoruz .
Şimdi, virtualenv'i bu şekilde yeniden yüklemek

pdobrogost@host:~$ pip install --user --upgrade virtualenv
Downloading/unpacking virtualenv from https://pypi.python.org/packages/py27/v/virtualenv/virtualenv-1.11.1-py27-none-any.whl#md5=265770b61de41d34d2e9fdfddcdf034c
  Using download cache from /home/users/pdobrogost/.pip_download_cache/https%3A%2F%2Fpypi.python.org%2Fpackages%2Fpy27%2Fv%2Fvirtualenv%2Fvirtualenv-1.11.1-py27-none-any.whl
Installing collected packages: virtualenv
Successfully installed virtualenv
Cleaning up...

yardımcı olmuyor (hiçbiri pip install --user --upgrade --force-reinstall virtualenv) çünkü komut dosyası /home/users/pdobrogost/.local/bin/virtualenvdeğişmeden bırakılıyor.

Bunu düzeltebilmemin tek yolu, virtualenv * komut dosyalarını /home/users/pdobrogost/.local/bin/klasörden manuel olarak kaldırıp virtualenv'i yeniden yüklemekti. Bundan sonra, yeni oluşturulan komut dosyaları, paketin uygun sürümüne başvurur:

pdobrogost@host:~$ virtualenv --version
1.11

6

Bunu şu şekilde çözebildim:

$ brew update
$ brew doctor
$ brew uninstall python
$ brew install python --build-from-source    # took ~5 mins
$ python --version                           # => Python 2.7.9
$ pip install --upgrade pip

Aşağıdaki şeylerle çalışıyorum (2 Ocak 2015 itibariyle):

OS X Yosemite
Version 10.10.1

$ brew -v
Homebrew 0.9.5

$ python --version
Python 2.7.9

$ ipython --version
2.2.0

$ pip --version
pip 6.0.3 from /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pip-6.0.3-py2.7.egg (python 2.7)

$ which pip
/usr/local/bin/pip

5

OSx'te de benzer bir sorunla karşılaşıyordum. Yığın izim diyordu

raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: setuptools>=11.3

Sonra şunu yaptım

sudo pip install --upgrade setuptools

Bu benim için sorunu çözdü. Umarım birisi bunu faydalı bulacaktır.


1
Bu, Windows 10'daki sorunumu çözdü
Mark Allen

1
Bu, CentOS 6'da bizim için sorunu çözdü
Dan Phillimore

2

Mac OS X'te (MBP), aşağıdakiler (burada bulunan başka bir cevaptan alınmıştır) sorunlarımı çözdü:

C02L257NDV33:~ jjohnson$ brew install pip
Error: No available formula for pip
Homebrew provides pip via: `brew install python`. However you will then
have two Pythons installed on your Mac, so alternatively you can:
    sudo easy_install pip
C02L257NDV33:~ jjohnson$ sudo easy_install pip

Açıkçası buradaki temel neden, python (benim durumumda Homebrew) kurmak için ikincil bir yönteme sahip olmaktır. Umarım, pip betiğinden sorumlu kişiler, Stack Overflow'da ilk kez rapor edildikten 2 yıl sonra hala geçerli olduğundan bu sorunu çözebilirler.


1

Bu sorunu yaşadım çünkü yazdığımı ~/.pydistutils.cfghatırlamadığım bir tuhaflıkla python / pip yükledim . Sildi, yeniden yükledi (ile pybrew) ve her şey yolundaydı.


1

Benim durumumda (sam problemi, ancak diğer paketler) sürüm bağımlılığı yoktu. Bir dizi pip uninstall ve pip insstall yardımcı oldu.

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.