J'ai installé un virtualenv machinelearn et installé quelques modules en python (pandas, scipy et sklearn) dans cet environnement.
Lorsque je lance jupyter notebook, je peux importer des pandas et scipy dans mes cahiers. Toutefois, lorsque j'essaie d'importer sklearn, le message d'erreur suivant s'affiche:
import sklearn
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-8fd979e02004> in <module>()
----> 1 import sklearn
ImportError: No module named 'sklearn'
Je peux importer tous les modules, en ligne de commande - je sais donc qu'ils ont été installés avec succès:
(machinelearn) me@yourbox:~/path/to/machinelearn$ python -c "import pandas, scipy, sklearn"
(machinelearn) me@yourbox:~/path/to/machinelearn$
Comment puis-je importer sklearn dans mon cahier jupyter fonctionnant sous virtualenv?
Vous n'avez probablement pas installé jupyter/IPython dans votre virtualenv. Essayez ce qui suit:
python -c "import IPython"
et vérifiez que la commande jupyter
trouvée dans votre $PATH
est celle du dossier bin
de votre venv:
which jupyter
Pour les utilisateurs Windows dans une console Powershell, vous pouvez utiliser les éléments suivants pour vérifier que la commande jupyter
dans votre $env:Path
est celle du dossier Scripts
de votre venv:
get-command jupyter
Edit : si tel est le problème, exécutez simplement python -m pip install jupyter
dans votre fichier .vv.
Edit 2 : en fait, vous pourriez aussi avoir besoin de:
python -m ipykernel install --user --name=my-virtualenv-name
Une autre approche consiste à avoir une installation globale de Jupyter, mais de pointer sur différents noyaux pour exécuter le backend.
Cette approche est décrite ici dans leur documentation: http://help.pythonanywhere.com/pages/IPythonNotebookVirtualenvs
Copie ci-dessous en cas de rupture du lien: Vous pouvez utiliser virtualenv pour votre bloc-notes IPython. Suivez les étapes suivantes:
Installez le module de noyau ipython dans votre virtualenv
workon my-virtualenv-name # activate your virtualenv, if you haven't already
pip install ipykernel
Maintenant, lancez le script "auto-installation" du noyau:
python -m ipykernel install --user --name=my-virtualenv-name
Remplacement du paramètre --name selon le cas.
Vous devriez maintenant pouvoir voir votre noyau dans le menu du cahier IPython: Kernel -> Changer le noyau et pouvoir le changer (vous devrez peut-être actualiser la page avant qu'elle apparaisse dans la liste). IPython se souviendra ensuite du noyau à utiliser pour ce cahier.
Pour utiliser le bloc-notes Jupyter avec un environnement virtuel (à l'aide de virtualenvwrapper) et des packages installés dans cet environnement, procédez comme suit:
créer un environnement virtuel
mkvirtualenv --no-site-packages --python=/your/python/path your_env_name
Activer l'environnement virtuel
workon your_env_name
Installer Jupyter et d'autres packages
pip install jupyter, numpy
Ajouter un nouveau noyau à votre configuration Jupyter
ipython kernel install --user --name=your_env_name
Terminé. Vous pouvez maintenant utiliser le bloc-notes Jupyter dans l'environnement virtuel.
jupyter-notebook
Avertissement: la question a été répondue mais est cachée dans l'une des réponses. J'ai cherché sur Google et j'ai pris le temps de trouver la bonne réponse. Donc, je viens de résumer pour qu'une personne ayant le même problème puisse facilement suivre.
Création de virtualenv avec la commande python3 -m venv
J'ai eu le même problème que le vôtre . Dans mon cas, j'avais créé virtualenv avec la commande
python3 -m venv ./my_virtual_env --system-site-packages
Le problème était que je ne pouvais pas installer jupyter dans l'environnement virtuel, car il se trouvait déjà dans le paquet system-site (lorsque vous essayez de l'installer, il vous indique que "l'exigence est déjà satisfaite").
Pour installer jupyter (et dans un premier pip, cela ne s’installe pas non plus dans votre environnement virtuel avec cette commande) mais avez toujours accès au paquet system-site-package que vous pouvez exécuter:
python3 -m venv ./my_virtual_env
Activez votre environnement virtuel, exécutez pip3 install jupyter
(et pip3 install pip
), puis activez l'option include-system-site-packages dans le fichier ./my_virtual_env/pyvenv.cfg.
Après la désactivation et la réactivation de votre environnement, vous aurez accès aux packages de site du système.
Création de virtualenv avec la commande virtualenv
Étant donné cette réponse vous pouvez empêcher l’accès aux paquets-sites du système en créant un fichier ./my_virtual_env/lib/python3.4/no-global-site-packages.txt,et récupérer l’accès par l'enlever.
Vous pouvez toujours installer jupyter dans votre environnement virtuel si vous avez créé votre env virtuel en utilisant:
python -m venv --system-site-packages path/to/my-venv
Faites simplement ceci:
activate-your-env
pip install -I jupyter
Et vous êtes maintenant prêt à partir
jupyter notebook