J'ai installé Anaconda (avec Python 2.7) et installé Tensorflow dans un environnement appelé tensorflow
. Je peux importer Tensorflow avec succès dans cet environnement.
Le problème est que Jupyter Notebook ne reconnaît pas le nouvel environnement que je viens de créer. Peu importe que je commence Jupyter Notebook à partir du navigateur GUI ou de la ligne de commande au sein de l' tensorflow
env, il n'y a qu'un seul noyau dans le menu appelé Python [Root]
, et tensorflow ne peut pas être importé. Bien sûr, j'ai cliqué plusieurs fois sur cette option, enregistré le fichier, rouvert, mais cela n'a pas aidé.
Étrangement, je peux voir les deux environnements lorsque j'ouvre l' Conda
onglet sur la première page de Jupyter. Mais quand j'ouvre l' Files
onglet et que j'essaye new
un cahier, je me retrouve toujours avec un seul noyau.
J'ai regardé cette question:
Lier l'environnement Conda avec Jupyter Notebook
Mais il n'y a pas un tel répertoire que ~/Library/Jupyter/kernels
sur mon ordinateur! Ce répertoire Jupyter n'a qu'un seul sous-répertoire appelé runtime
.
Je suis vraiment confus. Les environnements Conda sont-ils censés devenir des noyaux automatiquement? (J'ai suivi https://ipython.readthedocs.io/en/stable/install/kernel_install.html pour configurer manuellement les noyaux, mais on m'a dit que cela ipykernel
n'était pas trouvé.)
la source
conda install ipykernel
dans cet environnement.conda install ipykernel
semble s'installerjupyter
dans l'environnement ... Suis-je en train de manquer quelque chose?nb_conda
est utilisé ou si le noyau est configuré manuellement comme suggéré dans la question. Sinon, cela gâchera beaucoup les choses. L'exécutablejupyter
pointera vers un exécutable dans l'environnement, mais le systèmejupyter-notebook
sera démarré (s'il est installé) et n'utilisera donc pas l'environnement avec le noyau par défaut.Réponses:
Je ne pense pas que les autres réponses fonctionnent plus, car conda a cessé de configurer automatiquement les environnements en tant que noyaux jupyter. Vous devez ajouter manuellement des noyaux pour chaque environnement de la manière suivante:
Comme indiqué ici: http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments Consultez également ce problème .
Addendum: vous devriez pouvoir installer le
nb_conda_kernels
package avecconda install nb_conda_kernels
pour ajouter automatiquement tous les environnements, voir https://github.com/Anaconda-Platform/nb_conda_kernelsla source
nb_conda_kernels
travaillé pour moi d'Avril 2018 (Python 3.6.4
,conda 4.3.27
,jupyter 4.4.0
).conda install ipykernel
cette réponse suppose que vous l'avez déjà installé sur votre environnement.Si vos environnements ne s'affichent pas, vous ne l'avez probablement pas
nb_conda_kernels
installé dans l'environnement où Jupyter est installé. La documentation d'Anaconda indique queNotez qu'au moment de la publication de cela, il y avait une cause possible à la
nb_conda
non-prise en charge des environnements Python 3.6 .Si d'autres solutions ne parviennent pas à faire en sorte que Jupyter reconnaisse d'autres environnements conda, vous pouvez toujours installer et exécuter à
jupyter
partir d'un environnement spécifique. Cependant, vous ne pourrez peut-être pas voir ou passer à d'autres environnements à partir de Jupyter.Notez que j'utilise Python 3.6.1 dans ce bloc-notes:
Notez que si vous faites cela avec de nombreux environnements, l'espace de stockage supplémentaire de l'installation de Jupyter dans chaque environnement peut être indésirable (selon votre système).
la source
nb_conda
Le but est seulement de "[fournir] l 'environnement Conda et l' extension d 'accès au package depuis Jupyter" et non de le faire pour que vous puissiez exécuter Jupyter à partir de l' installation python que vous avez choisie.ipykernel
doit être installé dans chaque env que vous souhaitez utiliser en tant que noyau.Ce qui est ennuyeux, c'est que dans votre
tensorflow
environnement, vous pouvez exécuterjupyter notebook
sans installerjupyter
dans cet environnement . Il suffit de couriret l'
tensorflow
environnement devrait maintenant être visible dans Jupyter Notebooks démarré dans n'importe lequel de vosconda
environnements comme quelque chose commePython [conda env:tensorflow]
.la source
conda install nb_conda
dans l'un de vos environnements conda d'origine (sur lequel est installé le portable jupyter). Vous pouvez ensuite changer kernels / conda envs dans le navigateur de notebook jupyter.ipykernel
(qui est la seule chose réellement nécessaire) est une dépendance dejupyter
.J'ai dû exécuter toutes les commandes mentionnées dans les 3 meilleures réponses pour que cela fonctionne:
la source
conda install nb_conda
jupyter lab
dans cet environnement spécifiqueExécutez simplement
conda install ipykernel
dans votre nouvel environnement, alors seulement vous obtiendrez un noyau avec cet env. Cela fonctionne même si vous avez installé différentes versions dans chaque environnement et qu'il n'installe pas à nouveau le bloc-notes jupyter. Vous pouvez démarrer votre cahier à partir de n'importe quel environnement, vous pourrez voir les noyaux nouvellement ajoutés.la source
conda install ipykernel
dans votre environnement conda. Dans le pire des cas, vous pouvez utiliserpython -m ipykernel install --user --name mykernel
pour générer manuellement le noyau, mais vous ne voudriez pas le faire s'il est déjà découvert automatiquement, ou il apparaîtra deux fois dans la liste du noyau.Résumé (tldr)
Si vous souhaitez que le noyau 'python3' exécute toujours l'installation Python à partir de l'environnement dans lequel il est lancé, supprimez le noyau utilisateur 'python3', qui a la priorité sur l'environnement actuel avec:
Solution complète
Je vais publier une solution alternative et plus simple pour le cas suivant:
jupyter notebook
et créez un nouveau bloc-notes en cliquant sur «python3» dans le menu déroulant «Nouveau», ce bloc-notes exécute python à partir de l'environnement de base et non à partir de l'environnement actuel.Je vais utiliser le nom 'test_env' pour l'environnement pour le reste de la solution. Notez également que «python3» est le nom du noyau.
La réponse actuellement la plus votée fonctionne, mais il existe une alternative. Il dit de faire ce qui suit:
Cela vous donnera la possibilité d'utiliser l'environnement test_env quel que soit l'environnement à partir duquel vous lancez
jupyter notebook
. Mais, le lancement d'un ordinateur portable avec «python3» utilisera toujours l'installation Python à partir de l'environnement de base.Ce qui se passe probablement, c'est qu'il existe un noyau utilisateur python3. Exécutez la commande
jupyter kernelspec list
pour répertorier tous vos environnements. Par exemple, si vous avez un mac, vous serez renvoyé ce qui suit (mon nom d'utilisateur est Ted).Ce que Jupyter fait ici, c'est chercher à travers trois chemins différents à la recherche de noyaux. Cela va de l' utilisateur , à Env , au système . Consultez ce document pour plus de détails sur les chemins qu'il recherche pour chaque système d'exploitation.
Les deux noyaux ci-dessus sont tous les deux dans le chemin utilisateur, ce qui signifie qu'ils seront disponibles quel que soit l'environnement à partir duquel vous lancez un bloc-notes jupyter. Cela signifie également que s'il existe un autre noyau 'python3' au niveau de l'environnement, vous ne pourrez jamais y accéder.
Pour moi, il est plus logique de choisir le noyau 'python3' dans l'environnement à partir duquel vous avez lancé le bloc-notes devrait exécuter Python à partir de cet environnement.
Vous pouvez vérifier si vous avez un autre environnement 'python3' en recherchant dans le chemin de recherche Env pour votre système d'exploitation (voir le lien vers les documents ci-dessus). Pour moi (sur mon mac), j'ai émis la commande suivante:
Et j'avais en effet un noyau 'python3' répertorié là-bas.
Grâce à ce commentaire sur le problème GitHub (regardez la première réponse), vous pouvez supprimer l'environnement 'python3' de l'utilisateur avec la commande suivante:
Maintenant, lorsque vous exécutez
jupyter kernelspec list
, en supposant que test_env est toujours actif, vous obtiendrez les éléments suivants:Notez que ce chemin se trouve dans le répertoire test_env. Si vous créez un nouvel environnement, installez jupyter, activez-le et listez les noyaux, vous obtiendrez un autre noyau 'python3' situé dans son chemin d'environnement.
Le noyau utilisateur 'python3' prenait le pas sur n'importe lequel des noyaux Env 'python3'. En le supprimant, le noyau de l'environnement actif 'python3' était exposé et pouvait être choisi à chaque fois. Cela élimine le besoin de créer manuellement des noyaux. Cela a également plus de sens en termes de développement logiciel où l'on voudrait s'isoler dans un environnement unique. L'exécution d'un noyau différent de l'environnement hôte ne semble pas naturelle.
Il semble également que cet utilisateur 'python3' ne soit pas installé pour tout le monde par défaut, donc tout le monde n'est pas confronté à ce problème.
la source
(dans l'environnement conda où vous exécutez le cahier jupyter) rendra tous les envs conda disponibles automatiquement. Pour accéder à d'autres environnements, les noyaux respectifs doivent être installés. Voici la réf .
la source
Nous avons beaucoup de mal avec ce problème, et voici ce qui fonctionne pour nous. Si vous utilisez le canal conda-forge , il est important de vous assurer que vous utilisez des packages mis à jour depuis
conda-forge
, même dans votreMiniconda
environnement racine.Installez donc Miniconda , puis faites:
et votre environnement personnalisé apparaîtra dans Jupyter en tant que noyau disponible, tant qu'il a
ipykernel
été répertorié pour l'installation dans votrecustom_env.yml
fichier, comme cet exemple:Juste pour prouver qu'il fonctionne avec un tas d'environnements personnalisés, voici une capture d'écran de Windows:
la source
Le
nb_conda_kernels
package est le meilleur moyen d'utiliserjupyter
avecconda
. Avec des dépendances et une configuration minimales, il vous permet d'utiliser d'autres environnements conda à partir d'un ordinateur portable jupyter fonctionnant dans un environnement différent. Citant sa documentation :Il vous suffit ensuite de démarrer le serveur de notebook jupyter:
Malgré la pléthore de réponses et les efforts de @ merv pour les améliorer, il est toujours difficile d'en trouver une bonne. J'ai fait celui-ci CW, alors votez-le en haut ou améliorez-le!
la source
J'ai rencontré ce même problème où mon nouvel environnement conda
myenv
ne pouvait pas être sélectionné en tant que noyau ou nouveau bloc-notes. Et courirjupter notebook
à l'intérieur de l'env a donné le même résultat.Ma solution et ce que j'ai appris sur la façon dont les blocs-notes Jupyter reconnaissent les conda-envs et les noyaux:
Installer jupyter et ipython
myenv
avec conda:Après cela, courir en
jupter notebook
dehors de tout env répertorié enmyenv
tant que noyau avec mes environnements précédents.Exécution du portable une fois que j'ai activé l'environnement:
masque tous mes autres noyaux d'environnement et n'affiche que mes noyaux de langue:
la source
Cela a fonctionné pour moi dans Windows 10 et la dernière solution:
1) Entrez dans cet environnement conda (activez votre_nom_env)
2) conda install -n votre_nom_env ipykernel
3) python -m ipykernel install --user --name build_central --display-name "your_env_name"
(REMARQUE: incluez les guillemets autour de "votre_nom_env", à l'étape 3)
la source
Cela a été tellement frustrant. Mon problème était que dans un environnement conda python36 nouvellement construit, jupyter a refusé de charger «seaborn» - même si seaborn a été installé dans cet environnement. Il semblait être capable d'importer de nombreux autres fichiers du même environnement - par exemple numpy et pandas mais tout simplement pas seaborn. J'ai essayé plusieurs des correctifs suggérés ici et sur d'autres threads sans succès. Jusqu'à ce que je réalise que Jupyter n'exécutait pas le python du noyau à partir de cet environnement mais exécutait le python du système en tant que noyau. Même si un noyau d'aspect décent et kernel.json étaient déjà présents dans l'environnement. Ce n'est qu'après avoir lu cette partie de la documentation ipython: https://ipython.readthedocs.io/en/latest/install/kernel_install.html#kernels-for-different-environments et en utilisant ces commandes:
J'ai pu tout faire bien fonctionner. (Je n'ai pas réellement utilisé la variable —user).
Une chose que je n'ai pas encore compris est de savoir comment définir le python par défaut pour être le "Python (autre-env)". À l'heure actuelle, un fichier .ipynb existant ouvert depuis l'écran d'accueil utilisera le système python. Je dois utiliser le menu du noyau "Changer le noyau" pour sélectionner l'environnement python.
la source
Bien que la réponse de @ coolscitist ait fonctionné pour moi, il existe également un moyen qui n'encombre pas votre environnement de noyau avec le package jupyter complet + deps. Il est décrit dans le documents ipython et n'est (je suppose) nécessaire que si vous exécutez le serveur notebook dans un environnement non-base.
Vous pouvez vérifier si cela fonctionne en utilisant
la source
conda install nb_conda_kernels
fonctionne mieux.python -m ipykernel install
c'est la voie traditionnelle pour enregistrer un env, et fonctionne pour d'autres env (non-Conda). L'idée derrièrenb_conda_kernels
est que vous n'avez pas besoin de le faire manuellement, tant que vous installezipykernel
.J'ai eu un problème similaire et j'ai trouvé une solution qui fonctionne pour Mac, Windows et Linux. Il faut peu d'ingrédients clés dans la réponse ci-dessus:
Pour pouvoir voir conda env dans le cahier Jupyter, vous avez besoin de:
le package suivant dans votre base env:
conda install nb_conda
le package suivant dans chaque env que vous créez:
conda install ipykernel
vérifiez la configuration de la
jupyter_notebook_config.py
première vérification si vous en avez un
jupyter_notebook_config.py
dans un emplacement donné parjupyter --paths
s'il n'existe pas, créez-le en exécutant
jupyter notebook --generate-config
add ou assurez-vous d'avoir les éléments suivants:
c.NotebookApp.kernel_spec_manager_class='nb_conda_kernels.manager.CondaKernelSpecManager'
L'env que vous pouvez voir dans votre terminal:
Sur Jupyter Lab, vous pouvez voir le même env que ci-dessus à la fois le portable et la console:
Et vous pouvez choisir votre env quand un cahier est ouvert:
Le moyen sûr est de créer un env spécifique à partir duquel vous exécuterez votre exemple de
jupyter lab
commande env . Activez votre env. Ajoutez ensuite l' exemple d'extension de laboratoire jupyter . Ensuite, vous pouvez exécuterjupyter lab
la source
Suivez les instructions de la documentation iPython pour ajouter différents environnements conda à la liste des noyaux parmi lesquels choisir dans Jupyter Notebook. En résumé, après l'installation
ipykernel
, vous devez activer chaque environnement conda un par un dans un terminal et exécuter la commandepython -m ipykernel install --user --name myenv --display-name "Python (myenv)"
, oùmyenv
est l'environnement (noyau) que vous souhaitez ajouter.la source
Problème possible spécifique au canal
J'ai eu ce problème (encore) et il s'est avéré que j'ai installé à partir du canal conda-forge ; le supprimer et le réinstaller à partir du canal anaconda l' a corrigé à ma place.
Mise à jour : Je nouveau eu le même problème avec un nouveau env, cette fois , je n'installe
nb_conda_kernels
de Anaconda canal, mais monjupyter_client
était de la Conda-forge canal. Désinstallationnb_conda_kernels
et la réinstallation l'ont mis à jour vers un canal de priorité plus élevée.Assurez-vous donc que vous avez installé à partir des bons canaux :)
la source
jupyter
etnb_conda_kernels
doit être installé dans un env - c'est là que vous exécutez toujoursjupyter notebook
. Les nouveaux envs ont seulement besoinipykernel
, mais ne doivent pas être activés lors de l'exécutionjupyter notebook
.Dans mon cas, en utilisant Windows 10 et conda 4.6.11, en exécutant les commandes
depuis le terminal tout en ayant l'environnement actif n'a pas fait le travail après avoir ouvert Jupyter à partir de la même ligne de commande en utilisant
conda jupyter notebook
.La solution était apparemment d'ouvrir Jupyter à partir d'Anaconda Navigator en accédant à mon environnement dans les environnements: ouvrez Anaconda Navigator, sélectionnez l'environnement dans les environnements, appuyez sur le bouton "play" de l'environnement choisi, puis sélectionnez "ouvrir avec Jupyter Notebook".
Environnements dans Anaconda Navigator pour exécuter Jupyter à partir de l'environnement sélectionné
la source
ipykernel
dans tous les envs que vous souhaitez utiliser dans Jupyter comme noyaux.