Mam problem z Pythonem, iPythonem i bibliotekami. Poniższe punkty pokazują łańcuch problematyki. Używam Pythona 2.7 na Mac Lion.
- iPython nie czyta bibliotek scipy, matplotlib, ale czyta numpy.
- Aby to naprawić, próbowałem zainstalować wersję kodu źródłowego Pythona i sprawiło mi to tylko więcej problemów, ponieważ teraz mam dwie różne wersje: 2.7.1 i 2.7.2
- Zauważyłem, że uruchamianie Pythona używa wersji 2.7.2 i importuje scipy, matplotlib i numpy, ale w iPythonie jest to wersja 2.7.1, która nie otwiera scipy ani matplotlib.
Wypróbowałem kilka rzeczy, które napotkałem na innych blogach. Ale żaden z nich nie pomógł, a także niestety nie bardzo wiem, co z niektórymi robię. Na przykład: próbowałem odinstalować i ponownie zainstalować ipython za pomocą easy_install i pip. Próbowałem również przeinstalować wszystko przez homebrew i zmodyfikować ścieżkę .bash_profile.
ipython
Skrypt jest „przywiązany” do konkretnej wersji Pythona został zainstalowany z - nie przełączy się automatycznie co zainstalowany jako ostatni. Jeśli najpierw zainstalowałeś 2.7.1, następnie IPython, a następnie 2.7.2 ze źródła, Twój IPython będzie nadal używać 2.7.1. Musisz albo cofnąć wszystkie swoje wymachy, wrócić do oryginalnej wersji Pythona i dowiedzieć się, jaka była przyczyna za punktem 1; alternatywnie, zainstaluj ponownie IPython, używając dowolnej instalacji Pythona, która może uzyskać dostęp do potrzebnych bibliotek.ipython
pliku wykonywalnego jest umieszczane w PATH. Jeśli następnie zainstalujesz Python 2.7.2 ze źródła, będzie to nowa, oddzielna kopia Pythona, nie zaktualizuje istniejącej wersji 2.7.1, która zawiera IPython. Więc IPython nie zobaczy kopii 2.7.2 ani żadnych zawartych w niej bibliotek.Odpowiedzi:
Dobra szybka naprawa:
daje ci
/usr/bin/python
, prawda? Robići założę się, że tak będzie
/usr/local/bin/ipython
. Zajrzyjmy do środka:Edycja 07.09.16 - plik wygląda teraz następująco:
I moje działa poprawnie w ten sposób, ale moja sytuacja nie jest dokładnie taka jak w PO.
Oryginalna odpowiedź - 30.09.13:
Aha - otwórz
/usr/local/bin/ipython
w swoim edytorze (z uprawnieniami) i zmień pierwszą linię nazapisz, uruchom iPython, powinien powiedzieć, że używa teraz żądanej wersji.
źródło
python -m IPython
jest równoważne zipython
oczekiwaniem, że na pewno używasz właściwego języka Python.Publikowanie komentarza @ Matta jako odpowiedzi, aby był bardziej widoczny
Ładuje ipython jako moduł z dowolnym pythonem, który jest dostępny w ścieżce jako pierwszy. W moim przypadku miałem jeden preinstalowany i jeden dodałem z naparu. To po prostu działa doskonale.
źródło
A co z korzystaniem z virtualenv? Naprawdę to lubie. Może nie jest to szybszy sposób, ale myślę, że jest to bardzo jasne.
Podczas tworzenia virtualenv możesz określić ścieżkę Pythona za pomocą opcji -p.
dla Pythona 2.7
dla Pythona 3.4
źródło
python -m IPython
rozpocznie ipython z podaną wersjąpython
python -m IPython
trzeba to zainstalować:pip install ipython
Po pierwsze, upewnię się, że używasz właściwego Pythona. W wierszu polecenia wpisz:
Pierwsza poda ścieżkę, a druga podaje wersję Pythona, której używasz.
źródło
Moje rozwiązanie jest proste, głupie, ale działa.
Używam,
python -V
aby upewnić się, jaka jest wersjaa następnie utwórz alias w .bash_profile
Dodaj linię
wtedy otrzymasz
ipython
w Pythonie 2.7. 🙂(Nawiasem mówiąc, my
ipython
is install viahomebrew
, domyślnie będzie działał ipython w Pythonie 3.)źródło
niezwykle trafne: http://conda.pydata.org/docs/troubleshooting.html#shell-command-location .
td; lr występują problemy z powodu „mieszania” powłoki i zmiennych ścieżek.
źródło
which python
powinien wskazywać binarnego virtualenv Pythona.hash -r
naprawił to dla mnie; dzięki!Podobna metoda z użyciem pyenv
Teraz pokaże poprawną wersję Pythona
źródło
Absolutnie najprostsze rozwiązanie, jakie przychodzi mi do głowy, które nie wymaga majstrowania przy środowiskach, zainstalowanych plikach ani w niczym innym, opiera się na faktach, że
ipython
jest w rzeczywistości skryptem w Pythonie.pip intall
.Jeśli wersja Pythona, z którą korzystasz, ma zainstalowany pakiet IPython, możesz to zrobić
Spowoduje to uruchomienie
ipython
skryptu za pomocą odpowiedniego interpretera zamiast tego wymienionego w shebang.źródło
ipython
w mojej powłoce, automatycznie czytał niestandardowy interpreter zamiast domyślnego?Twój problem polega w zasadzie na tym, aby ipython używał właściwego Pythona.
więc rozwiązaniem problemu jest sprawienie, aby ipython używał odpowiedniego Pythona (który ma zainstalowane biblioteki takie jak scipy)
Tutaj napisałem rozwiązanie:
Jak sprawić, by iPython używał Pythona 2 zamiast Pythona 3
źródło
Natknąłem się na ten sam problem, ale poniższe było jedynym rozwiązaniem, które działało dla mnie na OSX 12, Sierra.
ipython zawsze był uruchamiany w Pythonie 3.6, ale potrzebowałem go w wersji 2.7. Nie mogłem znaleźć skryptu startowego ipython dla wersji 2.7, ani nie mogłem znaleźć modułu IPython do wykonania
python -m
. Żaden zbrew instally ipython
pip install ipython
lubpip2 install ipython
nie mógł mi dostać wersji 2.7. Więc dostałem to ręcznie.brew install ipython@5
instaluje stąd wersję 2.7 , ale nie umieści jej na twoim,$PATH
ponieważ wie, że nazwa powoduje konflikt z innym pakietem.ln -s /usr/local/Cellar/ipython@5/5.5.0_1/bin/ipython /usr/local/bin/ipython2
naprawi to i pozwoli ci po prostu uruchomićipython2
z zachęty powłokiDla mnie, ponieważ poważnie podchodziłem do używania ipythona w wersji 2.7, uruchomiłem również następujące polecenia.
źródło
Wszystkie wymienione tutaj odpowiedzi nie pomagają w rozwiązaniu problemu, jeśli używasz anakondy lub innego opakowania środowiska wirtualnego.
Ta odpowiedź opiera się na założeniu, że używasz anakondy.
Załóżmy, że pracujesz w środowisku Python 3 i podczas tworzenia notatnika w notatniku jupyter wyświetla się „Python 2” zamiast „Python 3”.
Dzieje się tak, ponieważ „ipython” jest w istocie skryptem, który jest uruchamiany iw tym skrypcie wspomina, której wersji języka Python używa do wykonania polecenia. Wszystko, co musisz zrobić, to zmienić tę linię, aby ipython używał żądanej wersji Pythona.
Najpierw zatrzymaj serwer ipython i uzyskaj lokalizację pliku wykonywalnego Pythona w bieżącym środowisku za pomocą polecenia „który python”
Mój wynik to:
Teraz pobierz lokalizację wykonywalną ipythona, użyj polecenia „który ipython”
mój jest :
Zauważ, że używa innej wersji Pythona, tj. python z określonego środowiska z inną wersją języka python, tj. z uruchomionym językiem Python z innego środowiska.
Teraz przejdź do katalogu anaconda2 / bin (dla użytkowników anaconda 3 powinno to być anaconda3 / bin) i wyszukaj plik „ipython”. w tej edycji pierwsza linia wskazuje na aktualną wersję Pythona, którą chcesz. tj. wyjście polecenia „który python”, czyli:
Zauważ, że zmieniłem moje środowisko Pythona z py2 (z uruchomionym Pythonem 2.7) na py3 (z Pythonem 3.5).
Zapisz plik. I uruchom notatnik jupyter, teraz podczas tworzenia nowego notatnika opcja „Python 3” powinna być widoczna.
Twoje zdrowie!
źródło