Ich habe Probleme mit Python, iPython und den Bibliotheken. Die folgenden Punkte zeigen die Kette der Problematik. Ich verwende Python 2.7 auf Mac Lion.
Ich habe verschiedene Dinge ausprobiert, die ich in anderen Blogposts gesehen habe. Aber keiner von ihnen hat geholfen, und leider weiß ich auch nicht so ganz, was ich mit einigen von ihnen mache. Zum Beispiel: Ich habe versucht, ipython mit easy_install und pip zu deinstallieren und erneut zu installieren. Ich habe auch versucht, alles über Homebrew neu zu installieren und den Pfad .bash_profile zu ändern.
Okay, schnelle Lösung:
which python
gibt dir /usr/bin/python
, richtig? Tun
which ipython
und ich wette, das wird /usr/local/bin/ipython
sein. Schauen wir mal rein:
Edit 9/7/16 - Die Datei sieht jetzt so aus:
cat /usr/local/bin/ipython
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from IPython import start_ipython
if __== '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(start_ipython())
Und meiner funktioniert so, aber meine Situation ist nicht genau wie bei den OPs.
Ursprüngliche Antwort - 30.09.13:
cat /usr/local/bin/ipython
#!/usr/bin/python
# EASY-INSTALL-ENTRY-SCRIPT: 'ipython==0.12.1','console_scripts','ipython'
__requires__ = 'ipython==0.12.1'
import sys
from pkg_resources import load_entry_point
if __== '__main__':
sys.exit(
load_entry_point('ipython==0.12.1', 'console_scripts', 'ipython')()
)
Aha - öffnen Sie /usr/local/bin/ipython
in Ihrem Editor (mit Privilegien) und ändern Sie die erste Zeile in
#!/usr/local/bin/python
speichern Sie, starten Sie iPython und sollten Sie sagen, dass es die Version verwendet, die Sie jetzt möchten.
Was ist mit einer Virtualenv? Ich mag es wirklich. Vielleicht ist es nicht der schnellere Weg, aber ich denke, es ist sehr klar.
Wenn Sie eine Virtualenv erstellen, können Sie den Python-Pfad mit dem Flag -p angeben.
für Python 2.7
$ virtualenv -p /usr/bin/python2.7 venv2.7
$ source venv2.7/bin/activate
(venv2.7)$ pip install ipython
(venv2.7)$ ipython
für Python 3.4
$ virtualenv -p /usr/bin/python3.4 venv3.4
$ source venv3.4/bin/activate
(venv3.4)$ pip install ipython
(venv3.4)$ ipython
Zuerst würde ich sicherstellen, dass Sie den richtigen Python verwenden. Bei einer Eingabeaufforderung geben Sie Folgendes ein:
which python
python -V
Beim ersten wird der Pfad angegeben, beim zweiten wird die verwendete Python-Version angegeben.
Meine Lösung ist einfach, dumm aber gut.
Ich verwende python -V
, um sicherzustellen, dass es sich um eine Version handelt
$ python -V
Python 2.7.10
und machen Sie dann einen Alias in .bash_profile
$ vi ~/.bash_profile
Eine Zeile hinzufügen
alias ipython="python -m IPython"
dann erhalten Sie eine ipython
in Python 2.7. ????
(Meine ipython
wird übrigens über homebrew
installiert. Standardmäßig wird in Python 3 eine ipython-Ausführung ausgeführt.)
$ brew install ipython
äußerst relevant: http://conda.pydata.org/docs/troubleshooter.html#Shell-command-location .
td; lr-Probleme treten aufgrund von Shell-Hashing- und Pfadvariablen auf.
Eine ähnliche Methode mit pyenv
pyenv install 3.4.5
pyenv local 3.4.5
pip install ipython
ipython
Jetzt wird die korrekte Version von Python angezeigt
Python 3.4.5
@Matts Kommentar als Antwort posten, damit er besser sichtbar ist
python -m IPython
Lädt ipython als Modul mit dem Python, auf das zuerst im Pfad zugegriffen werden kann. In meinem Fall hatte ich eine vorinstallierte und eine von Brew. Das funktioniert einfach perfekt.
Die absolut einfachste Lösung, die ich mir vorstellen konnte, die kein Fummeln mit Umgebungen, installierten Dateien oder etwas anderem erfordert, hängt von den Fakten ab
ipython
ist eigentlich ein Python-Skript.pip intall
ausgeführt haben, separat installiert.Wenn in der Python-Version, die Sie ausführen, ein IPython-Paket installiert ist, können Sie dies tun
/path/to/desired/python $(which ipython)
Dadurch wird das Skript ipython
mit dem gewünschten Interpreter anstelle des im Shebang aufgelisteten Interpreters ausgeführt.
Ich bin auf das gleiche Problem gestoßen, aber das Folgende war die einzige Lösung, die bei OSX 12, Sierra, für mich funktionierte.
ipython wurde immer für python 3.6 gestartet, aber ich brauchte es für 2.7. Ich konnte weder ein ipython-Startskript für 2.7 finden, noch konnte ich das IPython-Modul mit python -m
ausführen. Keiner von brew instally ipython
pip install ipython
oder pip2 install ipython
konnte die Version 2.7 erhalten. Also habe ich es manuell bekommen.
brew install [email protected]
installiert die 2.7-Version von here , legt sie jedoch nicht in $PATH
ab, da die Namenskonflikte mit einem anderen Paket bekannt sindln -s /usr/local/Cellar/[email protected]/5.5.0_1/bin/ipython /usr/local/bin/ipython2
behebt dies und lässt Sie ipython2
von Ihrer Shell-Eingabeaufforderung aus ausführen
Da ich mit ipython für 2.7 ernst war, habe ich auch die folgenden Befehle ausgeführt.
ln -s /usr/local/Cellar/ipython/6.2.1/bin/ipython /usr/local/bin/ipython3
rm -f /usr/local/bin/ipython
ln -s /usr/local/bin/ipython2 /usr/local/bin/ipython
Alle hier genannten Antworten helfen nicht bei der Lösung des Problems, wenn Sie Anaconda oder einen anderen Wrapper für virtuelle Umgebungen verwenden.
Diese Antwort basiert auf der Annahme, dass Sie Anaconda verwenden.
Angenommen, Sie befinden sich in einer Python 3-Umgebung und beim Erstellen eines Notizbuchs auf Jupyter Notebook wird "Python 2" anstelle von "Python 3" angezeigt.
Dies liegt daran, dass "ipython" im Wesentlichen ein Skript ist, das ausgeführt wird, und in diesem Skript wird angegeben, welche Python-Version zum Ausführen des Befehls verwendet wird. Sie müssen nur diese Zeile ändern, damit ipython die gewünschte Python-Version verwendet.
Stoppen Sie zuerst den ipython-Server und rufen Sie mit dem Befehl "which python" den Speicherort der ausführbaren Python-Datei der aktuellen Umgebung ab.
Meine Ausgabe ist:
/home/sourabh/anaconda2/envs/py3/bin/python
Holen Sie sich jetzt den ausführbaren Speicherort von ipython mit dem Befehl "which ipython"
meins ist :
/home/sourabh/anaconda2/envs/py2/bin/python
Beachten Sie, dass es eine andere Version von Python verwendet, z. Python aus einer bestimmten Umgebung, in der eine andere Version von Python ausgeführt wird, dh Python aus einer anderen Umgebung.
Navigieren Sie nun zum Verzeichnis anaconda2/bin (für anaconda 3-Benutzer sollte es anaconda3/bin sein) und suchen Sie nach der Datei "ipython". in diesem editieren sie die erste zeile, um sie auf die aktuelle python version zu verweisen, die sie wollen. dh die Ausgabe von "welches Python", d.h.
#!/home/sourabh/anaconda2/envs/py3/bin/python
Beachten Sie, dass ich meine Python-Umgebung von py2 (mit Python 2.7) auf py3 (mit Python 3.5) geändert habe.
Speicher die Datei. Und führen Sie jupyter notebook aus, jetzt sollte beim Erstellen eines neuen Notizbuchs die Option "Python 3" sichtbar sein.
Prost!
Ihr Problem besteht im Wesentlichen darin, dass ipython den richtigen Python verwendet.
die Lösung des Problems besteht darin, dass ipython den richtigen Python verwendet (der die Bibliotheken wie scipy installiert hat).
Ich habe hier eine Lösung geschrieben:
Wie kann ich iPython Python 2 anstelle von Python 3 verwenden lassen