Nie wiem, o co chodzi, ale utknąłem podążając za niektórymi rozwiązaniami związanymi z przepełnieniem stosu, które prowadzą donikąd. Czy możesz mi w tym pomóc?
Monas-MacBook-Pro:CS764 mona$ sudo python get-pip.py
The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/mona/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
/tmp/tmpbSjX8k/pip.zip/pip/_vendor/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
Collecting pip
Downloading pip-7.1.0-py2.py3-none-any.whl (1.1MB)
100% |████████████████████████████████| 1.1MB 181kB/s
Installing collected packages: pip
Found existing installation: pip 1.4.1
Uninstalling pip-1.4.1:
Successfully uninstalled pip-1.4.1
Successfully installed pip-7.1.0
Monas-MacBook-Pro:CS764 mona$ pip --version
-bash: /usr/local/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory
python
macos
installation
pip
osx-mavericks
Mona Jalal
źródło
źródło
pip3 install --upgrade pip
jak wskazał @Excalibur w komentarzu poniżej.Domyślam się, że masz dwie instalacje Pythona lub dwie instalacje pip, z których jedna została częściowo usunięta.
Dlaczego używasz
sudo
? Idealnie byłoby, gdybyś był w stanie zainstalować i uruchomić wszystko z konta użytkownika zamiast używać roota. Jeśli pomieszasz konto root i konto lokalne, bardziej prawdopodobne jest, że napotkasz problemy z uprawnieniami (np. Zobacz ostrzeżenie, że „katalog nadrzędny nie jest własnością bieżącego użytkownika”).Co otrzymasz, jeśli to uruchomisz?
To pokaże, który plik binarny Pythona
pip
próbuje użyć. Jeśli wskazuje/usr/local/opt/python/bin/python2.7
, spróbuj uruchomić to:$ ls -al /usr/local/opt/python/bin/python2.7
Jeśli to mówi „Nie ma takiego pliku lub katalogu”, oznacza to, że pip próbuje użyć pliku binarnego Pythona, który został usunięty.
Następnie spróbuj tego:
$ which python $ which python2.7
Aby zobaczyć ścieżkę do pliku binarnego Pythona, który faktycznie działa.
Ponieważ wygląda na to, że pip został gdzieś pomyślnie zainstalowany, może to być
/usr/local/bin/pip
część starszej instalacji pip, która znajduje się wyżej naPATH
. Aby to sprawdzić, możesz spróbować odsunąć niedziałającypip
plik binarny w ten sposób (może to wymagaćsudo
):Następnie spróbuj
pip --version
ponownie uruchomić polecenie. Miejmy nadzieję, że wybierze poprawną wersję i będzie działać pomyślnie.źródło
sudo /usr/bin/easy_install pip
- Znalazłem go tutaj: stackoverflow.com/questions/27308234/…Jedyne rozwiązanie w OSX i jego wariancie.
ln -s /usr/local/bin/python /usr/local/opt/python/bin/python2.7
źródło
Mocowanie pip
W przypadku tego błędu:
~/Library/Python/2.7/bin/pip: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`
Źródłem tego problemu jest zła ścieżka do Pythona zakodowana na stałe w pip (co oznacza, że nie zostanie naprawiona np. Przez zmianę $ PATH). Ta ścieżka nie jest już zakodowana na stałe w najnowszej wersji pip, więc rozwiązaniem, które powinno działać, jest:
Ale oczywiście to polecenie używa pip, więc kończy się niepowodzeniem z tym samym błędem.
Sposób na wyrwanie się z tego bałaganu:
which pip
#!/usr/local/opt/python/bin/python2.7
na np.#!/usr/local/opt/python2/bin/python2.7
(Zwróć uwagę na python2 w ścieżce) lub dowolną ścieżkę do działającego interpretera Pythona na twoim komputerze.pip install --upgrade pip
(to nadpisuje twój hack i sprawi, że pip będzie działał w najnowszej wersji, gdzie problem interpretera powinien zostać naprawiony)Naprawianie virtualenv
U mnie znalazłem ten problem, najpierw mając ten sam problem z virtualenv:
~/Library/Python/2.7/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory`
Rozwiązaniem jest ucieczka
Jeśli uruchomienie tego polecenia powoduje ten sam błąd z pip, patrz powyżej.
źródło
pip3 install --upgrade pip
)Popełniłem ten sam błąd, używając sudo do mojej instalacji. (ups)
To wszystko wróciło do normy.
źródło
Ponieważ miałem zainstalowane zarówno pythona 2, jak i 3 w systemie Mac OSX, pojawiały się różnego rodzaju błędy.
Użyłem tego, aby znaleźć lokalizację mojego pliku python2.7 (/usr/local/bin/python2.7)
which python2.7
Następnie połączyłem moją prawdziwą lokalizację instalacji pythona2.7 z tą, której oczekiwał skrypt:
ln -s /usr/local/bin/python2.7 /usr/local/opt/python/bin/python2.7
źródło
Miałem podobny problem. Zasadniczo pip szukał złej ścieżki (starej ścieżki instalacji) lub Pythona. U mnie zadziałało następujące rozwiązanie:
which python
)/usr/local/bin/pip2.7
i/usr/local/bin/pip
). Linia powinna zawierać poprawną ścieżkę do ścieżki Pythona. W moim przypadku nie. Poprawiłem to i teraz działa dobrze.źródło
Na wypadek, gdyby to komuś pomogło, rozwiązanie wspomniane w tym drugim pytaniu zadziałało, gdy pip przestał działać dzisiaj po aktualizacji: Pip uszkodzony po aktualizacji
Wygląda na to, że jest to problem, gdy zmienia się wcześniej zbuforowana lokalizacja, więc możesz odświeżyć pamięć podręczną za pomocą tego polecenia:
źródło
Aby uprościć obsługę, możemy użyć poniższego polecenia, aby ponownie zainstalować wersję 2:
brew install python@2
Wtedy na moim Macu wygląda to jak poniżej:
▶ python -V Python 2.7.10 ▶ python2 -V Python 2.7.14 ▶ python3 -V Python 3.6.5 ▶ pip2 -V pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7) ▶ pip3 -V pip 9.0.3 from /usr/local/lib/python3.6/site-packages (python 3.6) ▶ pip --version pip 9.0.3 from /usr/local/lib/python2.7/site-packages (python 2.7)
źródło
reinstall
polecenie wbrew
:brew reinstall python@2
Miałem ten sam problem. Mam zainstalowany zarówno Python 2.7, jak i 3.6. Python 2.7
virtualenv
działał, ale po zainstalowaniu Pythona3 virtualenv szukał wersji 2.7 i nie mógł jej znaleźć. Robićpip install virtualenv
zainstalował wersję Python3 z virtualenv.Następnie dla każdego polecenia, jeśli chcę używać Python2, użyłbym
virtualenv --python=python2.7 somecommand
źródło
Miałem ten sam problem, virtualenv wskazywał na starą ścieżkę w Pythonie. Naprawienie ścieżki rozwiązało problem:
$ virtualenv -p python2.7 env -bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory $ which python2.7 /opt/local/bin/python2.7 # needed to change to correct python path $ head /usr/local/bin/virtualenv #!/usr/local/opt/python/bin/python2.7 <<<< REMOVED THIS LINE #!/opt/local/bin/python2.7 <<<<< REPLACED WITH CORRECT PATH # now it works: $ virtualenv -p python2.7 env Running virtualenv with interpreter /opt/local/bin/python2.7 New python executable in env/bin/python Installing setuptools, pip...done.
źródło
Mam ten sam problem. Jeśli biegnę
brew link --overwrite python2
. Nadal byłozsh: /usr/local/bin//fab: bad interpreter: /usr/local/opt/python/bin/python2.7: no such file or directory
.Rozwiązałem to! Teraz możemy użyć tkaniny w wersji python2.
=== 2018/07/25 zaktualizowany
Istnieje wygodny sposób na użycie wersji fab python2, gdy twój system operacyjny python jest połączony z python3.
.sh
na twoje rozkazy.# fab python2 cd /usr/local/opt rm python ln -s python2 python # use the fab cli ... # link to python3 cd /usr/local/opt rm python ln -s python3 python
Mam nadzieję że to pomoże.
źródło
Edycja pierwszej linii tego pliku zadziałała dla mnie:
MBP-de-Jose:~ josejunior$ which python3
/usr/local/Cellar/python/3.7.3/bin/python3
MBP-de-Jose:~ josejunior$
przed
#!/usr/local/opt/python/bin/python3.7
po
#!/usr/local/Cellar/python/3.7.3/bin/python3
źródło
Wszystko, co musisz zrobić, to ... zamknąć okno terminala i ponownie otworzyć nowe, aby rozwiązać ten problem.
Problem polega na tym, że nowa ścieżka Pythona nie jest dodawana do bashrc (pomogłoby albo źródło, albo nowe okno terminala).
źródło
W moim przypadku zdecydowałem się usunąć instalację homebrew python z mojego komputera Mac, ponieważ miałem już dwie inne wersje Pythona zainstalowane na moim komputerze Mac przez MacPorts. To spowodowało komunikat o błędzie.
Ponowna instalacja Pythona przez brew rozwiązała mój problem.
źródło
to polecenie zadziałało dla mnie
źródło
Dla mnie na centOS 7 musiałem usunąć stary link pip z / bin by
następnie połącz go ponownie za pomocą
sudo ln -s /usr/local/bin/pip2.7 /bin/pip2.7
A następnie, jeśli
/usr/local/bin/pip2.7
Działa, to powinno działać
źródło
Możesz mieć dwie różne wersje Pythona i pip.
Spróbuj:
pip2 install --upgrade pip
i wtedypip2 install -r requirements.txt
Lub
pip3
jeśli korzystasz z nowszej wersji Pythona.źródło
TLDR:
pip
znaleziony w twojej ścieżce a jest dowiązaniem symbolicznym, a wskazana lokalizacja nie zawiera już pliku wykonywalnego. Musisz zaktualizować łącze symboliczne.Pomaga zrozumieć kilka rzeczy.
python
lub systempip
operacyjny będzie szukał,/etc/paths
aby spróbować znaleźć plik wykonywalny powiązany z tym poleceniem. Możesz tam zobaczyć wszystko, używająccat /etc/paths
.which
, możesz wpisaćwhich python
lubwhich pip
. Dzięki temu dowiesz się, gdzie znajduje się plik wykonywalny, którego powłoka będzie używać dla tego polecenia./etc/paths
że zawiera/usr/local/bin
, ale często też/usr/local/bin
jest zbiorem dowiązań symbolicznych do rzeczywistych plików wykonywalnych. Nie same pliki wykonywalne.bad interpreter: No such file or directory
Mając to na uwadze, problem prawdopodobnie
pip
jest związany z dowiązaniem symbolicznym, a połączony plik wykonywalny prawdopodobnie już nie istnieje w tej lokalizacji. Aby to naprawić, wykonaj następujące czynnościwhich pip
(podaje coś takiego/usr/local/bin/pip
)ls -l /usr/local/bin/pip | grep pip
(podaj coś takiegopip -> /usr/local/opt/[email protected]/bin/pip3
)ls /usr/local/opt/[email protected]/bin/pip3
(masz ten problem, więc prawdopodobnie tak nie jest).rm -r /usr/local/bin/pip
pip
wykonywalny przypadku korzystaniahomebrew
będzie się/usr/local/opt
można użyć coś jakls /usr/local/opt/ | grep python
go znaleźć.ln -s /usr/local/opt/[email protected]/bin/pip3 /usr/local/bin/pip
źródło