Chcę zainstalować Scipy (mam już zainstalowany Numpy). Mam zainstalowany Python 3.5.1-3 z systemem operacyjnym i IDLE3 (3.5.2). Kiedy uderzę w terminal
sudo pip3 install scipy
Drukuje
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
Próbowałem już ponownie zainstalować pip3 i zrestartować system operacyjny, ale to się nie zmieniło. Czy pip3 dziwnie pracuje z kimś innym?
Użyj
python -m pip install
zamiastpip install
Przykład:
Zacząłem dostawać ten problem po
pip
aktualizacji:Plik
pip
(względnypip3
) jest dostarczany przez twoją dystrybucję (python-pip
pakiet na Ubuntu 16.04).Dlatego nie jest aktualizowany z samym
pip
pakietem podczas aktualizacji pip i może się zepsuć.Jeśli używasz
python -m pip
bezpośrednio, np. Jak w:przechodzi przez ścieżkę Pythona, znajduje najnowszą wersję pipa i wykonuje ten plik.
Opiera się na fakcie, że plik ten jest wykonywalny, ale jest to bardzo standardowy typ interfejsu i dlatego jest mniej prawdopodobne, że się zepsuje niż trudniejszy skrypt Debiana.
Następnie zalecamy dodanie następujących aliasów do
.bashrc
:Plik Ubuntu 18.04
/usr/bin/pip3
:i prawdopodobnie
main
zostałpip
w pewnym momencie usunięty z tego, co zepsuło.Wydaje się, że łamanie zatwierdzenia pip wygląda następująco: 95bcf8c5f6394298035a7332c441868f3b0169f4 „Przenieś wszystkie wewnętrzne interfejsy API do pip._internal” które przeszły do pip 18.0.
Testowane w Ubuntu 16.04 po aktualizacji z
pip3
9.0.1 do 18.0.pyenv
Ostatecznie jednak w przypadku poważnego rozwoju Pythona po prostu zaleciłbym zainstalowanie własnego lokalnego Pythona za pomocą pyenv + virtualenv, który obejmie również ten błąd Ubuntu: Jak zainstalować inną wersję Pythona za pomocą apt-get?
źródło
/usr/bin/pip
jest dostarczany przez pakiet Ubuntu Python ipip
nie zastępuje go. Ale sampip update
jest zarządzanypip
i unika dotykania plików Ubuntu.Debian
- Komentarz mówi:Run the main entry point, similarly to how setuptools does it, but because we didn't install the actual entry point from setup.py, don't use the pkg_resources API.
Być może istnieje sposób, aby poprawnie zainstalować Pythona w sposób pythonowy./usr/bin/pip
robi kod :-)Błąd został znaleziony w pip 10.0.0.
W Linuksie musisz zmodyfikować plik: / usr / bin / pip z:
do tego:
źródło
pip
zespół.Miałem ten sam problem, ale odinstalowanie i ponowna instalacja za pomocą apt i pip nie działały dla mnie.
Widziałem inne rozwiązanie, które przedstawia prosty sposób na odzyskanie ścieżki pip3:
źródło
Chociaż Karel mógł rozwiązać problem z „instalacją numpy i scipy”, to, co jest nie tak z pipem w twoim systemie, nie zostało rozwiązane, więc prawdopodobnie będziesz miał więcej problemów z pipem w przyszłości.
Patrząc tutaj , wydaje się, że jest to dość powszechny ostatnio problem z pipem 10 w systemach Ubuntu. Możesz znaleźć pewne obejścia tego wątku, które działają dla ciebie, ale mam nadzieję, że aktualizacja to naprawi wkrótce.
źródło
Może to spowodować zainstalowanie pip zarówno z apt, jak i samego pip.
W moim przypadku użyłem pakietu pip Ubuntu do zainstalowania pipenv, który następnie zainstalował nowszą kopię pip. Teraz, ponieważ moja powłoka uruchamia skrypt pip 9 Ubuntu (aby zweryfikować uruchomienie
which pip3
), a mój interpreter Python następnie importuje moduł pip 10, polecenie pip3 kończy się niepowodzeniem. Więc chcę odinstalować jeden z dwóch.Można słusznie założyć, że masz nowy pip z jakiegoś powodu. W takim przypadku chcesz odinstalować starszą pip:
sudo apt remove python3-pip
Jeśli wiesz na pewno, że nie masz nic przeciwko starszemu pipowi i wolisz pakiet systemowy, odinstaluj nowszy:
~/.local/bin/pip3 uninstall pip
lub w przeciwnym razie
sudo /usr/local/bin/pip3 uninstall pip
źródło
rodzaj
To powinno usunąć ten błąd
źródło
Wymuszenie ponownej instalacji pip działa dobrze dla większości użytkowników, jak pokazano na tej stronie github:
źródło
Mój problem okazał się być niezgodnością między python3.6 a 3.7. Instalacja Python3.6 umieściła łącze,
/usr/bin/python3 -> /usr/bin/python3.6
mimo że system został zaktualizowany do wersji Python3.7.źródło
To działało dla mnie:
Przez
install --upgrade
, to znaczy cokolwiek próbujesz zainstalować.źródło