Ich verstehe, dass IPython nicht virtualenv-fähig ist und dass die logischste Lösung hierfür darin besteht, ipython in jedem virtualenv separat zu installieren
pip install ipython
So weit, ist es gut. Eine Sache, die mir aufgefallen ist, ist, dass, wenn die systemweite Kopie von IPython aus einer virtuellen Umgebung heraus aufgerufen wird, $> ipython
bevor IPython unter dieser virtuellen Umgebung installiert wird, nachfolgende $> ipython
Befehle weiterhin die systemweite IPython-Kopie aufrufen.
Wenn ipython jedoch vor der Installation unter einer virtuellen Umgebung nicht aufgerufen $> ipython
wird, wird die neu installierte Kopie aufgerufen .
Was ist die Erklärung dafür?
Ich frage mich auch, ob dieses Verhalten bedeutet, dass ich auf dem Weg einige Probleme erwarten sollte.
quelle
ipython
ausführbaren Datei irgendwo ( siehe diese Frage ).hash -r
löscht den Cache zuvor ausgeführter Befehle, der normalerweise im Rahmen der Aktivierung einer Umgebung ausgeführt wird. Überprüfen Siehash -r
in ENV / bin / aktivieren.hash -r
vor dem Aktivieren einer Umgebung ausgeführt wurde, um das Problem zu beheben. Zu Ihrer Information Ich habe mit virtualenv 1.10.1Antworten:
alias ipy="python -c 'import IPython; IPython.terminal.ipapp.launch_new_instance()'"
Auf diese Weise können Sie immer sicher sein, dass die ipython-Instanz immer zur Python-Version von virtualenv gehört.
Dies funktioniert nur unter ipython> 2.0.
Quelle
quelle
Die Antwort von @SiddharthaRT ist gut! Nach diesem Ansatz ist es für mich einfacher:
Dadurch wird das Modul IPython über den Python-Bin verwendet, um sicherzustellen, dass es auf den Bin aus der virtuellen Umgebung verweist.
quelle
Sie können IPython zwingen, eine virtuelle Umgebung zu verwenden, falls verfügbar, indem Sie die folgende Datei hinzufügen zu
~/.ipython/profile_default/startups
:Ich empfehle, es zu benennen,
00-virtualenv.py
damit Änderungen so früh wie möglich vorgenommen werden.Hinweis: Stellen Sie sicher, dass ipython in der neuen virtuellen Umgebung installiert ist, damit dies funktioniert.
quelle
Wie bereits erwähnt, sind neuere Versionen von ipython virtualenv-fähig. Sie können also Ihr virtualenv bin- Aktivierungsskript verwenden , um ipython mit Ihrer virtualenv auszuführen, z
quelle
ipython --version; cat /etc/issue
Aktivieren Sie Ihre virtuelle Umgebung mithilfe der Quelle ~ / .virtualenvs / my_venv / bin / enabled oder indem Sie workon my_venv ausführen (abhängig davon, wie Sie die virtuelle Umgebung my_venv installiert haben).
Installieren Sie ipython
Wenn das Ipython des Systems weiterhin geladen wird, führen Sie es aus
quelle
Wenn Sie versuchen, ein Notebook zu öffnen, hilft auch ipython 5 nicht weiter - ipython ignoriert die virtuelle Umgebung (zumindest auf meinem Computer / Setup). Sie müssen das Skript von rgtk verwenden, aber stellen Sie sicher, dass Sie den optionalen Filterteil und die Datei sys.path.insert wie folgt ändern:
quelle
(Debian / Ubuntu) unter der Annahme, dass eine Version (x) von Python3 installiert ist, dann:
startet ipython mit Ihrer Version von Python3.
quelle
Ich werde Jahre später in der Hoffnung läuten, dass jemand dies nützlich findet.
Diese Lösung löst einige Probleme:
3.6 != 3.7
) Ihrer virtuellen Umgebung entspricht .pyenv
denen sich Ihre globale Python-Version möglicherweise befindet3.7
und Ihre lokale virtuelle Python-Version3.6
daher die globale Version verwendet, schlägtipython
fehl.python
).Wirf das in dein
~/.bashrc
oder~/.zshrc
oder was hast du:Dann
source
oder öffnen Sie ein neues Terminal und führen Sie es ausipy
.quelle