2017-02-24 1 views
6

Ich habe ein virtualenv machinelearn installiert und installiert ein paar Python-Module (Pandas, Scipy und Sklearn) in dieser Umgebung.Running Jupyter Notebook in einem virtualenv: installiert sklearn Modul nicht verfügbar

Wenn ich jupyter Notebook laufen, kann ich Pandas und scipy in meine Notizbücher importieren - aber wenn ich versuche, sklearn zu importieren, erhalte ich die folgende Fehlermeldung:

import sklearn 

--------------------------------------------------------------------------- 
ImportError        Traceback (most recent call last) 
<ipython-input-1-8fd979e02004> in <module>() 
----> 1 import sklearn 

ImportError: No module named 'sklearn' 

Ich bin in der Lage, alle Module importieren , in der Befehlszeile - so dass ich weiß, dass sie erfolgreich installiert wurden:

(machinelearn) [email protected]:~/path/to/machinelearn$ python -c "import pandas, scipy, sklearn" 
(machinelearn) [email protected]:~/path/to/machinelearn$ 

Wie kann ich sklearn in meinem jupyter Notebook importieren in einem virtualenv läuft?

+0

Ich denke, Sie haben Ihr Notebook nicht mit der richtigen ausführbaren Python gestartet. Es ist auf der rechten Seite der Seite geschrieben und es sollte ein Dropdown-Menü sein. Überprüfen Sie, ob es sich bei dem Conda um den installierbaren virtualenv und nicht root handelt. –

Antwort

4

Sie haben wahrscheinlich Jupyter/IPython nicht in Ihrem virtualenv installiert. Versuchen Sie Folgendes:

python -c "import IPython" 

und prüfen, ob der jupyter Befehl in Ihrer $PATH gefunden ist derjenige, von dem bin Ordner Ihrer Venv:

which jupyter 

für Windows-Benutzer in einer Powershell-Konsole können Sie verwenden folgendes zu überprüfen, ob der jupyter Befehl in Ihrem $env:Path ist derjenige, von dem Scripts Ordner von Ihnen Venv:

get-command jupyter 

Bearbeiten: Wenn dies das Problem ist, führen Sie einfach python -m pip install jupyter in Ihrem venv.

+0

Interessant, ich habe IPython nicht in der virtuellen Version installiert, aber die Ausführung von 'which jupyter' zeigt es in'/usr/bin/jupyter' an, Ill versuche, PIP installiere Jupyter in der virtuellen und sehen, ob das das Problem löst. –

+1

Nein, das Installieren von Jupyter in meinem Viertenv hat das Problem nicht gelöst, ich bekomme immer noch die Fehlermeldung: 'ImportError: Kein Modul mit dem Namen 'sklearn'' –

+0

Eigentlich habe ich einen neuen virtuellen (--no-site-packages) und pip erstellt installierte die Module, die ich wollte - jetzt funktioniert es. Danke –

5

Ein anderer Ansatz ist es, eine globale Jupiter-Installation zu haben, aber auf verschiedene Kernel als Backend zu zeigen.

Dieser Ansatz in ihre docs hier skizziert: http://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs

Kopieren unten, falls die Verbindung bricht: Sie können eine virtualenv für Ihre IPython Notebook verwenden. Folgen Sie den folgenden Schritten:

Installieren Sie das ipython Kernel-Modul in Ihr virtualenv

workon my-virtualenv-name # activate your virtualenv, if you haven't already 
pip install ipykernel 

nun den Kernel laufen "self-install" Skript:

python -m ipykernel install --user --name=my-virtualenv-name 

den --name Parameter gegebenenfalls austauschen .

Sie sollten nun in der Lage sein, Ihren Kernel im Menü des IPython-Notebooks zu sehen: Kernel -> Kernel ändern und so auf diesen wechseln können (Sie müssen die Seite möglicherweise aktualisieren, bevor sie in der Liste erscheint). IPython wird sich daran erinnern, welcher Kernel von da an für dieses Notebook verwendet wird.

+1

Sie haben keine Ahnung, wie viel Schmerz (und CPU-Lärm) das hat mich gerettet. Schließlich habe ich GPU Keras/Tensorflow in Jupyter ausgeführt. Beifall von einem anderen Radfahrer und Datenfreak. –

0

Erstellung von virtualenv mit python3 -m Venv Befehl

hatte ich das gleiche Problem wie bei Ihnen. In meinem Fall habe ich die virtualenv mit dem

Befehl erstellt hatte
python3 -m venv ./my_virtual_env --system-site-packages 

Das Problem war ich nicht in der virtuellen Umgebung installieren jupyter könnte, wie es bereits im System-Ort-Paket war (wenn Sie versuchen, es zu installieren, es sagt Ihnen "Anforderung bereits erfüllt").

Um jupyter, (und in einem ersten Fall pip, die bekommen nicht weder in Ihrer virtuellen Umgebung mit diesem Befehl installiert ist) zu installieren System-Ort-Paket Zugriff auf Sie laufen haben, aber immer noch:

python3 -m venv ./my_virtual_env 

Aktivieren Sie Ihre virtuelle Umgebung, führen Sie pip3 install jupyter (und pip3 install pip) aus und aktivieren Sie dann die Option include-system-site-packages in der Datei ./my_virtual_env/pyvenv.cfg.

Nach Deaktivierung und Reaktivierung Ihrer Umgebung haben Sie Zugriff auf System-Site-Pakete.

Erstellung von virtualenv mit virtualenv Befehl

Da this answer Sie den Zugriff auf System-Website-Pakete verhindern kann, indem eine Datei ./my_virtual_env/lib/python3.4/no-global-site-packages zu schaffen. txt, und erhalten Sie den Zugriff zurück, indem Sie es entfernen.

Verwandte Themen