J'utilise les notebooks IPython et j'aimerais pouvoir choisir de créer un notebook python 2.x ou 3.x dans IPython.
Au départ, j'avais Anaconda. Avec Anaconda, une variable d'environnement globale devait être modifiée pour sélectionner la version de python souhaitée, puis IPython pouvait être lancé. Ce n'est pas ce que je recherchais, j'ai donc désinstallé Anaconda et j'ai maintenant mis en place ma propre installation en utilisant MacPorts et PiP. Il semble que je doive toujours utiliser
port select --set python <python version>
pour basculer entre python 2.x et 3.x, ce qui n'est pas mieux que la solution d'Anaconda.
Existe-t-il un moyen de sélectionner la version de python que l'on souhaite utiliser après avoir démarré un notebook IPython, de préférence avec ma construction MacPorts actuelle ?
L'idée ici est d'installer plusieurs noyaux ipython
. Voici les instructions pour anaconda. Si vous n'utilisez pas anaconda, j'ai récemment ajouté des instructions pour utiliser des virtualenvs purs.
Depuis la version 4.1.0, anaconda inclut un paquetage spécial nb_conda_kernels
qui détecte les environnements conda avec des noyaux notebook et les enregistre automatiquement. Cela rend l'utilisation d'une nouvelle version de python aussi facile que la création de nouveaux environnements conda :
conda create -n py27 python=2.7 ipykernel
conda create -n py36 python=3.6 ipykernel
Après un redémarrage de jupyter notebook, les nouveaux noyaux sont disponibles via l'interface graphique. Veuillez noter que les nouveaux paquets doivent être explicitement installés dans les nouveaux environnements. La section Managing environments dans la documentation de conda's fournit de plus amples informations.
Les utilisateurs qui ne veulent pas utiliser nb_conda_kernels
ou qui utilisent encore d'anciennes versions d'anaconda peuvent utiliser les étapes suivantes pour enregistrer manuellement les noyaux ipython.
Configurez l'environnement python2.7
:
conda create -n py27 python=2.7
conda activate py27
conda install notebook ipykernel
ipython kernel install --user
configurer l'environnement python3.6
:
conda create -n py36 python=3.6
conda activate py36
conda install notebook ipykernel
ipython kernel install --user
Après cela, vous devriez être capable de choisir entre python2
et python3
.
et python3
lors de la création d'un nouveau notebook dans l'interface.
De plus, vous pouvez passer les options --name
et --display-name
à ipython kernel install
si vous voulez changer les noms de vos noyaux. Voir ipython kernel install --help
pour plus d'informations.
Avec une version actuelle de Notebook/Jupyter, vous pouvez créer un [noyau Python3][1]. Après avoir lancé une nouvelle application Notebook à partir de la ligne de commande avec Python 2, vous devriez voir une entrée "Python 3" dans le menu déroulant "New". Cela vous donne un notebook qui utilise Python 3. Vous pouvez donc avoir deux notebooks côte à côte avec des versions différentes de Python.
Créez ce répertoire : mkdir -p ~/.ipython/kernels/python3
Créez ce fichier ~/.ipython/kernels/python3/kernel.json
avec ce contenu :
{
"display_name" : "IPython (Python 3)" ;,
"language" : "python" ;,
"argv" : [
"python3" ;,
"-c" ;, "from IPython.kernel.zmq.kernelapp import main ; main()" ;,
"-f" ;, "{fichier_connexion}" ;
],
"codemirror_mode" : {
"version" : 2,
"name" : "ipython" ;
}
}
Redémarrez le serveur notebook.
Sélectionnez "Python 3" dans le menu déroulant "New".
Travailler avec un notebook Python 3
Sélectionnez "Python 2" dans le menu déroulant "Nouveau". 7.
Travailler avec un Notebook Python 2
[1] : http://jupyter.cs.brynmawr.edu/hub/dblank/public/Jupyter%20Help.ipynb#1.4.2-Enable-Python-3-kernel
Il existe une solution qui me permet de conserver mon installation MacPorts en configurant le kernelspec Ipython.
Conditions requises :
Pour python 2.x :
$ cd /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
$ sudo ./ipython kernelspec install-self
Pour python 3.x :
$ cd /opt/local/Library/Frameworks/Python.framework/Versions/3.4/bin
$ sudo ./ipython kernelspec install-self
Vous pouvez maintenant ouvrir un bloc-notes Ipython, puis choisir un bloc-notes python 2.x ou python 3.x.
[!Choisissez votre python !][1]][1]