Wdrażam aplikację Django na serwerze deweloperskim i uruchamiam ten błąd po uruchomieniu pip install -r requirements.txt
:
Traceback (most recent call last):
File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
from pkg_resources import load_entry_point
ImportError: No module named pkg_resources
pkg_resources
wydaje się być rozpowszechniany z setuptools
. Początkowo myślałem, że to może nie być zainstalowane w Pythonie w virtualenv, więc zainstalowałem setuptools 2.6
(taką samą wersję jak Python) do pakietów witryn Pythona w virtualenv za pomocą następującej komendy:
sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages
EDYCJA: Dzieje się tak tylko w virtualenv. Jeśli otworzę konsolę poza virtualenv, to pkg_resources
jest obecny, ale wciąż pojawia się ten sam błąd.
Wszelkie pomysły, dlaczego pkg_resources
nie jest na ścieżce?
python
django
virtualenv
setuptools
pip
igniteflow
źródło
źródło
pip uninstall -y setuptools
a potempip install setuptools==39.1.0
pracował dla mnie nad Anacondą w systemie Windows 10.Odpowiedzi:
Aktualizacja z lipca 2018 r
Większość ludzi powinna teraz używać
pip install setuptools
(prawdopodobnie zsudo
).Niektóre mogą wymagać (re) zainstalować
python-setuptools
pakiet przez ich menedżera pakietów (apt-get install
,yum install
, itd.).Ten problem może w dużym stopniu zależeć od systemu operacyjnego i środowiska programisty. Zobacz poniższe / pozostałe odpowiedzi poniżej, jeśli powyższe nie działa dla Ciebie.
Wyjaśnienie
Ten komunikat o błędzie jest spowodowany brakującym / uszkodzonym
setuptools
pakietem Python . Zgodnie z komentarzem Matta M. i setuptools nr 581 , skrypt bootstrap, o którym mowa poniżej, nie jest już zalecaną metodą instalacji.Instrukcje skryptu bootstrap pozostaną poniżej, na wypadek, gdyby nadal były pomocne dla kogokolwiek.
Starsza odpowiedź
To samo spotkałem
ImportError
dzisiaj podczas próby użycia pip. Jakośsetuptools
pakiet został usunięty w moim środowisku Python.Aby rozwiązać problem, uruchom skrypt instalacyjny dla
setuptools
:(lub jeśli nie masz
wget
zainstalowanego (np. OS X), spróbujewentualnie z przygotowanym
sudo
.)Jeśli masz dowolną wersję
distribute
lub wersjęsetuptools
poniżej 0.6, musisz ją najpierw odinstalować. *Więcej informacji znajduje się w instrukcji instalacji .
* Jeśli masz już działający
distribute
,setuptools
łatwiej jest go uaktualnić do „opakowania zgodności”, na które się przełącza . Ale jeśli rzeczy są już zepsute, nie próbuj tego.źródło
sudo python
przez YMMV.easy_install pip
znów działałem pip. Mój problem powstał po aktualizacji Cygwina z Pythona z 2.6 do 2.7 za moimi plecami podczas instalowania czegoś niezwiązanego.distribute
jest przestarzała isetuptools
jest jej następcą. Zedytuję odpowiedź, aby ją zaktualizować, ale nie jestem pewien, czy jest to najlepszy sposób, aby ją obsłużyć, więc ktoś może cofnąć edycję, w takim przypadku: Idź tutaj .sudo
używałeś, jak zauważył @Nik powyżej?naprawiłem to dla mnie w Debianie. Wygląda na to, że odinstalowanie niektórych pakietów .deb (w moim przypadku twisted set) popsuło ścieżkę używaną przez Pythona do znajdowania pakietów
źródło
Widziałem ten błąd podczas próby zainstalowania rhodecode na virtualenv na Ubuntu 13.10. Dla mnie rozwiązaniem było uruchomienie
zanim uruchomię rhodecode easy_install.
źródło
pip install --upgrade setuptools
sama zrobiła dla mnie lewę.pip install --upgrade setuptools --user
pip install --upgrade setuptools
powodu tego samego błędu:No module named pkg_resources
pip install --upgrade distribute
wykonał zadanie przy użyciu modułu Venv Pythona 3.--distribute
Flaga virtualenv obsługiwana przez Python 2 , ale należy ją zainstalowaćdistribute
w środowiskach utworzonych przezvenv
.Zdarzyło mi się również. Myślę, że problem wystąpi, jeśli wymagania.txt zawierają wpis „rozpowszechniać”, podczas gdy virtualenv używa setuptools. Pip spróbuje załatać setuptools, aby zrobić miejsce na dystrybucję, ale niestety zawiedzie w połowie.
Łatwym rozwiązaniem jest usunięcie aktualnego virtualenv, a następnie utworzenie nowego virtualenv z argumentem --distribute.
Przykład użycia virtualenvwrapper:
źródło
pip install -U distribute
po aktywacji środowiska wykona zadanie.W CentOS 6 instalacja pakietu python-setuptools naprawiła go.
źródło
sudo apt-get install python3-setuptools
sudo yum reinstall python-setuptools
go naprawiłem.Miałem ten błąd wcześniej i najwyżej oceniona odpowiedź dała mi błąd podczas próby pobrania
ez_setup.py
pliku. Znalazłem inne źródło, więc możesz uruchomić polecenie:Stwierdziłem, że musiałem również użyć
sudo
go, aby działał, więc może być konieczne uruchomienie:Utworzyłem również inną lokalizację, z której można pobrać skrypt:
https://gist.github.com/ajtrichards/42e73562a89edb1039f3
źródło
curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
Po wypróbowaniu kilku z tych odpowiedzi, a następnie skontaktowaniu się z kolegą, w Ubuntu 16.04 działało dla mnie:
W moim przypadku była to tylko stara wersja poduszki 3.1.1, która miała problemy (poduszka 4.x działała dobrze), i to już zostało rozwiązane!
źródło
Potrzebowałem trochę więcej sudo. Następnie użyłem easy_install do instalacji pip. Pracuje.
źródło
sudo
nie powinno być wymagane w virtualenvNaprawiłem błąd w virtualenv, robiąc to:
Skopiowano pkg_resources.py z
/Library/Python/2.7/site-packages/setuptools
do
/Library/Python/2.7/site-packages/
To może być tanie obejście, ale zadziałało dla mnie.
.
Jeśli narzędzia instalacyjne nie istnieją, możesz spróbować zainstalować pakiety systemowe-witryny, pisząc
virtualenv --system-site-packages /DESTINATION DIRECTORY
, zmieniając ostatnią część na katalog, w którym chcesz zainstalować.pkg_rousources.py
będzie w tym katalogu w lib / python2.7 / site-packagesźródło
Dla mnie ten błąd był spowodowany, ponieważ miałem podkatalog o nazwie „strona”! Nie wiem, czy to błąd pip, czy nie, ale zacząłem od:
/some/dir/requirements.txt / some / dir / site /
pip install -r wymagania.txt nie działałoby, dając mi powyższy błąd!
zmiana nazwy podfolderu z „site” na „src” naprawiła problem! Może pip szuka „pakietów witryn”? Zwariowany.
źródło
Miałem ten problem, kiedy aktywowałem virtualenv jako inny użytkownik niż ten, który go utworzył. Wydaje się, że jest to problem z pozwoleniem. Odkryłem to, kiedy wypróbowałem odpowiedź przez @cwc i zobaczyłem to w danych wyjściowych:
Powrót do użytkownika, który utworzył virtualenv, a następnie uruchomienie oryginalnej
pip install
komendy przebiegło bez problemów. Mam nadzieję że to pomoże!źródło
Też miałem dzisiaj ten problem. Problem mam tylko w wirtualnej env.
Rozwiązaniem było dla mnie dezaktywacja wirtualnej env, usunięcie, a następnie odinstalowanie virtualenv z pipem i ponowna instalacja. Następnie stworzyłem nową wirtualną env dla mojego projektu, a następnie pip działał dobrze zarówno w środowisku wirtualnym, jak i w normalnym środowisku.
źródło
Wygląda na to, że odeszli od bitbucket i są teraz na github ( https://github.com/pypa/setuptools )
Polecenie do uruchomienia to:
źródło
Dla mnie okazało się, że jest to problem z uprawnieniami
site-packages
. Ponieważ jest to tylko moje środowisko programistyczne, podniosłem uprawnienia i wszystko znów działa:źródło
Jeśli napotykasz ten problem z aplikacją zainstalowaną za pośrednictwem conda , rozwiązaniem (jak podano w tym raporcie o błędzie) jest po prostu instalacja narzędzi instalacyjnych z:
źródło
W systemie Windows z Pythonem 3.7 to zadziałało dla mnie:
--user
instaluje pakiety w twoim katalogu domowym, który nie wymaga uprawnień administratora.źródło
prosta rezolucja polega na tym, że możesz użyć conda do aktualizacji setuptools lub całego środowiska. (Specjalnie dla użytkownika systemu Windows).
jeśli setuptools zostanie usunięte, musisz ponownie zainstalować setuptools.
jeśli te wszystkie metody nie działają, możesz zaktualizować środowisko Conda. Ale nie zalecam ponownej instalacji i odinstalowywania niektórych pakietów, ponieważ po tym pogorszy to sytuację.
źródło
Najwyraźniej brakuje Ci setuptools. Niektóre wersje virtualenv domyślnie używają distribute zamiast setuptools. Użyj tej
--setuptools
opcji podczas tworzenia virtualenv lub ustawVIRTUALENV_SETUPTOOLS=1
w swoim środowisku.źródło
W moim przypadku na początku zainstalowałem 2 wersje Pythona, a później usunąłem starszą. Podczas tworzenia wirtualnego środowiska
odnosiło się do odinstalowanego pytona
Co dla mnie zadziałało
To samo jest prawdą, gdy próbujesz użyć pip.
źródło
Natknąłem się na tę odpowiedź, gdy próbowałem postępować zgodnie z tym przewodnikiem dla OSX . To, co zadziałało, to po biegu
python get-pip
musiałem RÓWNIEŻeasy_install pip
. Naprawiono problem polegający na tym, że w ogóle nie można uruchomić pipa. I tak masz kilka zainstalowanym starym macport rzeczy. To mogło być sprzeczne.źródło
W systemie Windows zainstalowałem pip pobrany ze strony www.lfd.uci.edu/~gohlke/pythonlibs/, a następnie napotkałem ten problem.
Więc powinienem najpierw zainstalować setuptools (easy_install).
źródło
po prostu zainstaluj ponownie
setuptools
:wtedy wszystko będzie dobrze.
źródło
Używam CentOS 6.7, a mój python właśnie uaktualnił się z wersji 2.6.6 do wersji 2.7.11, po wypróbowaniu tak wielu różnych odpowiedzi, w końcu następująca:
Mam nadzieję, że pomogę komuś w tej samej sytuacji.
źródło
Żadna z opublikowanych odpowiedzi nie działała dla mnie, więc ponownie zainstalowałem pip i zadziałało!
(odniesienie: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/ )
źródło
Napotkałem ten problem po aktualizacji mojej kompilacji Ubuntu. Wygląda na to, że przeszedł i usunął narzędzia konfiguracji we wszystkich moich środowiskach wirtualnych.
Aby temu zaradzić, ponownie zainstalowałem środowisko wirtualne w katalogu docelowym. To wyczyściło brakujące narzędzia instalacyjne i sprawiło, że wszystko znów działało.
na przykład:
źródło
Dla mnie dobrą poprawką było użycie
--no-download
opcji virtualenv (VIRTUALENV_NO_DOWNLOAD=1 tox
dla toksyny).źródło
W opensuse 42.1 następujące problemy naprawiły:
źródło
ImportError: Brak modułu o nazwie pkg_resources: rozwiązaniem jest ponowna instalacja pip python pip przy użyciu następującego polecenia.
Krok: 1 Zaloguj się jako użytkownik root.
Krok: 2 Odinstaluj pakiet python-pip, jeśli istnieje.
Krok: 3 Pobierz pliki za pomocą polecenia wget (Pobieranie pliku w
pwd
)Krok: 4 Uruchom plik python.
Krok: 5 Ostatecznie exicute polecenie instalacji.
Uwaga: użytkownik musi być rootem.
źródło
Wystąpił ten błąd w moim środowisku Google App Engine. I
pip install -t lib setuptools
naprawiłem problem.źródło
Jeśli używasz Python 3, powinieneś użyć pip3 zamiast pip. Komenda wygląda jak
$ pip3 install requirements.txt
źródło