[PYTHON] Coexistence d'Anaconda 2 et Anaconda 3 dans Jupyter + Bonus (Julia)

(PS2016/1/13) Je suis accro à Jupyter depuis que j'ai lu Jupyter arrive si vite que vous êtes prêts (IPython Notebook + R).

J'utilise pyenv pour faire coexister Anaconda 2 et Anaconda 3, mais lors du basculement entre les versions d'Anaconda dans Jupyter, quittez Jupyter, basculez avec pyenv et recommencez! C'est devenu difficile à faire. J'aimerais pouvoir basculer facilement entre Python 2 et Python 3 à partir du menu Nouveau! J'ai pensé, alors j'ai essayé de définir cette zone. (Parce que je suis nouveau sur Jupyter, merci de me le faire savoir dans les commentaires s'il existe un moyen plus simple ...)

environnement

Le Python suivant est installé dans pyenv.

Junbi

Pour le meilleur ou pour le pire avec pyenv, Jupyter reflète l'environnement Python appliqué par pyenv.

Cependant, cela gêne l'utilisation de Jupyter. Je veux pouvoir basculer facilement entre Anaconda 2 et Anaconda 3. Par conséquent, je vais mettre un lien symbolique comme suit afin que chaque Anaconda puisse être démarré directement.

cd /usr/local/bin/ #Où se trouve le CHEMIN
ln -s ~/.pyenv/versions/anaconda-2.4.0/bin/python ./jupyter-python2
ln -s ~/.pyenv/versions/anaconda3-2.4.0/bin/python ./jupyter-python3

Je fais ça pour un fichier appelé kernel.json que je suis sur le point d'écrire, y a-t-il un meilleur moyen ...?

Faisons maintenant apparaître Python 2 et Python 3 ensemble dans le menu Nouveau.

Ajouter le noyau Python à Jupyter

Tout d'abord, appuyez sur la commande suivante.

mkdir -p ~/.ipython/kernels/python3
mkdir ~/.ipython/kernels/python2

touch ~/.ipython/kernels/python3/kernel.json
touch ~/.ipython/kernels/python2/kernel.json

De cette façon, vous pouvez ajouter des noyaux en créant un répertoire .ipython / kernels dans votre répertoire personnel et un répertoire avec un fichier kernel.json en dessous.

Maintenant, éditez ~ / .ipython / kernels / python2 / kernel.json avec votre éditeur préféré comme suit.

python2/kernel.json


{
    "display_name": "Python 2"
    "language": "python"
    "argv": [
        "jupyter-python2",
        "-m", "ipykernel",
        "-f", "{connection_file}"
    ]
}

De cette façon, vous pouvez spécifier les commandes et leurs arguments dans le champ «" argv "». Donc, si vous spécifiez jupyter-python2 plus tôt, Jupyter démarrera Anaconda 2 en sélectionnant" Python 2 "quel que soit le Python appliqué dans pyenv.

Ici, je suis entré dans la partie "ipykernel". En fait, lorsque je regarde divers sites, cette partie est décrite comme "IPython.kernel". Quand j'ai fait la même chose dans mon environnement, j'ai reçu l'avertissement suivant, qui ne semblait pas bon.

ShimWarning: The `IPython.kernel` package has been deprecated.

À partir de la déclaration d'avertissement qui était sortie à ce moment-là, j'ai ressenti l'atmosphère de "Non, importez l'ipykernel", donc quand je spécifie ʻipykernel` tel qu'il est maintenant, l'avertissement n'apparaît pas. , Il a repris sa forme actuelle.

Donc, sur cette base, j'écris également python3 comme suit.

python3/kernel.json


{
    "display_name": "Python 3"
    "language": "python"
    "argv": [
        "jupyter-python3",
        "-m", "ipykernel",
        "-f", "{connection_file}"
    ]
}

Cela devrait probablement vous permettre de basculer dans votre notebook sans avoir à revenir à pyenv.

(Ajout) conda + jupyter kernelspec

y__sama m'a donné quelques informations dans les commentaires, donc je n'ai pas à faire les choses folles ci-dessus, alors je vais l'ajouter ici.

Au fait, il existe une commande appelée «conda» dans la région d'Anaconda. Je savais que cela existait, mais je ne savais pas ce que c'était. (Eh.) En termes simples, cela semble également créer un environnement virtuel.

Par exemple, en utilisant le conda de anaconda3, nous pourrions créer un environnement virtuel jupyter-py2 comme~ / .pyenv / versions / anaconda3-2.4.0 / envs / jupyter-py2 /.

Il semble que l'environnement virtuel Python est actif et que le noyau est automatiquement ajouté à ~ / Library / Jupyter / kernels / en tapant la commande suivante.

jupyter kernelspec install-self --user

(Ajout) Oh, ça veut dire

En regardant mon utilisation et le contenu du kernel.json généré, j'ai senti qu'il n'était pas nécessaire de créer un environnement virtuel avec conda. Alors maintenant (pour l'instant) ça ressemble à ceci:

--Préparer anaconda2 et anaconda3 dans pyenv --Activer anaconda2, jupyter kernelspec install-self --user --Activer anaconda3, jupyter kernelspec install-self --user

Même ainsi, tout ce que vous devez savoir est jupyter kernelspec install-self --user. Merci d'avoir étudié.

Je veux aussi ajouter Julia!

À ce stade, vous voudrez également ajouter le noyau Julia. Je pense que Jupyter est également utile pour étudier Julia, qui est un sujet brûlant ces jours-ci, donc je l'ajouterai à cette occasion.

Installation de Julia

J'ai déposé le fichier dmg de Julialang.org/downloads et l'ai installé. Il semble que vous puissiez le faire avec Homebrew, mais j'ai l'impression que la compilation a échoué ou que c'était gênant, c'est donc recommandé (rires)

Après cela, mettez l'alias julia dans / Applications / Julia-0.4.2.app / Contents / Resources / julia / bin / julia.

Installer IJulia

Ensuite, installez ʻIJulia`. Démarrez Julia et tapez:

Pkg.add("IJulia")

Ensuite, dans mon cas, l'erreur suivante a été générée vers la fin.

===============================[ ERROR: IJulia ]================================

LoadError: __precompile__(true) but require failed to create a precompiled cache file
while loading /Users/"username"/.julia/v0.4/IJulia/deps/build.jl, in expression starting on line 2

================================================================================

=====================================[ BUILD ERRORS ]=====================================

WARNING: IJulia had build errors.

 - packages with build errors remain installed in /Users/"username"/.julia/v0.4
 - build the package(s) and all dependencies with `Pkg.build("IJulia")`
 - build a single package by running its `deps/build.jl` script

==========================================================================================

Je pensais que c'était ... mais cela a fonctionné si je faisais ce qui suit. Pourquoi? Lol

Pkg.rm("IJulia")
Pkg.add("IJulia")

Lancer le notebook Jupyter de Julia

À ce stade, démarrez Julia et procédez comme suit pour démarrer le bloc-notes comme d'habitude.

using IJulia
notebook()

Il a été ajouté au nouveau menu comme ceci.

ijulia.png

Après cela, même si j'ai ouvert le notebook Jupyter en Python, il y avait un élément Julia dans le menu Nouveau, il semble donc qu'il n'y ait pas besoin d'écrire kernel.json pour julia comme auparavant. (Si nécessaire, ajoutez un style à ce moment là lol)

Il fait donc beau et je peux écrire des cahiers en Julia! Je vous remercie pour votre travail acharné.

(Ajout) Au fait

Les noyaux Julia ajoutés de cette façon sont enregistrés dans ~ / Library / Jupyter /.

Les gens comme moi qui sont ennuyés par les détails tels que vouloir changer "Julia 0.4.2" en "Julia" dans le NOUVEAU menu du notebook devraient jeter un œil à kernel.json ici.

References

Ce sont les articles et sites qui ont été pris en charge cette fois. J'espère que cela est également utile!

Recommended Posts

Coexistence d'Anaconda 2 et Anaconda 3 dans Jupyter + Bonus (Julia)
À propos de l'erreur d'importation de numpy et scipy dans anaconda
Coexistence de pyenv et autojump
Coexistence de Python2 et 3 avec CircleCI (1.0)
Coexistence de la journalisation Flask et de la journalisation d'autres modules
Captures d'écran de la pêche sur le Web avec du sélénium et Chrome.
Séparation de la conception et des données dans matplotlib
Résumé des modules et des classes dans Python-TensorFlow2-
Projet Euler # 1 "Multiple de 3 et 5" en Python
Résumé des outils et bibliothèques OSS créés en 2016
Coexistence de Fcitx et Zoom ~ Avec localisation japonaise ~
Spécification du navigateur Jupyter Notebook dans un environnement Windows
L'en-tête est mal aligné avec read_csv () et read_table () de Pandas
Explication de la distance d'édition et de l'implémentation en Python
Installation d'Anaconda3
Python 3.3 avec Anaconda
Bash dans Jupyter
"Régression linéaire" et "Version probabiliste de la régression linéaire" en Python "Régression linéaire de Bayes"
Traitement pleine largeur et demi-largeur des données CSV en Python
Spécifiez la version antérieure du pilote Chrome avec la mise à jour / l'installation d'Anaconda
Calcul de l'écart type et du coefficient de corrélation en Python
Différence entre Ruby et Python en termes de variables
[python] Calcul des mois et des années de différence de date / heure
Enregistrez automatiquement les fichiers .py et .html dans le bloc-notes Jupyter.
Paramètres pour une sélection facile de plusieurs noyaux dans Jupyter
Notes personnelles sur l'intégration de vscode et anaconda
Exemple d'obtention du nom du module et du nom de la classe en Python
Récapitulatif du traitement de la date en Python (datetime et dateutil)
Comment créer un environnement virtuel Anaconda à utiliser avec Azure Machine Learning et comment créer un lien avec Jupyter