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.