Chaque fois que je lance IPython Notebook, la première commande que j'exécute est
%matplotlib inline
Existe-t-il un moyen de modifier mon fichier de configuration afin que lorsque je lance IPython, il soit automatiquement dans ce mode?
Chaque fois que je lance IPython Notebook, la première commande que j'exécute est
%matplotlib inline
Existe-t-il un moyen de modifier mon fichier de configuration afin que lorsque je lance IPython, il soit automatiquement dans ce mode?
ipython --matplotlib
est mieuxRéponses:
La manière de configuration
IPython a des profils pour la configuration, situés à
~/.ipython/profile_*
. Le profil par défaut est appeléprofile_default
. Dans ce dossier, il y a deux fichiers de configuration principaux:ipython_config.py
ipython_kernel_config.py
Ajoutez l'option en ligne pour matplotlib à
ipython_kernel_config.py
:matplotlib contre pylab
L'utilisation de
%pylab
pour obtenir le traçage en ligne est déconseillée .Il introduit toutes sortes de saletés dans votre espace de noms dont vous n'avez tout simplement pas besoin.
%matplotlib
d'autre part, permet le traçage en ligne sans injecter votre espace de noms. Vous devrez faire des appels explicites pour importer matplotlib et numpy.Le petit prix de la saisie explicite de vos importations doit être complètement surmonté par le fait que vous disposez désormais d'un code reproductible.
la source
%matplotlib
ou s'il définissait à la fois le backend par défaut et le configurait automatiquement pour une utilisation immédiate dans le Environnement iPython.matplotlib
vspylab
, iPython facilite très facilement l'exécution automatique de code python arbitraire chaque fois que vous lancez à l'aide de Profiles. Je pense qu'il est assez courant d'avoir un profil où l'on fait automatiquement des importations courantes commeimport numpy as np; import pandas as pd; import matplotlib.pyplot as plt
, etc. NB: cepylab
n'est pas la même chose quepyplot
. Il m'a fallu un mois pour m'en rendre compte.ipython_kernel_config.py
, qui contient cette option. Créez un nouveau profil (ipython profile create test
) pour obtenir une valeur par défaut.c.InteractiveShellApp.matplotlib = "inline"
Je pense que vous voulez peut-être exécuter ce qui suit à partir de la ligne de commande:
Si vous n'aimez pas le taper à chaque fois sur la ligne cmd, vous pouvez créer un alias pour le faire à votre place.
la source
--matplotlib inline
et supprimer le contenu --pylab. Voir ce post d'un ipython devel pourquoi: carreau.github.io/posts/10-No-PyLab-Thanks.ipynb.htmlmatplotlib=inline
: cela ralentira chaque noyau que vous lancerez, que vous souhaitiez ou non utiliser matplotlib.--matplotlib
ou--pylab
sont ignorées.%pylab
ou à la%matplotlib
place.Le paramètre a été désactivé dans
Jupyter 5.X
et plus en ajoutant le code ci-dessousEt dans les versions précédentes, il s'agissait principalement d'un avertissement. Mais ce n'est pas un gros problème car Jupyter utilise des concepts de
kernels
et vous pouvez trouver le noyau pour votre projet en exécutant la commande ci-dessousCela me donne le chemin vers le dossier du noyau. Maintenant, si j'ouvre le
/Users/tarunlalwani/Documents/Projects/SO/notebookinline/bin/../share/jupyter/kernels/python3/kernel.json
fichier, je vois quelque chose comme ci-dessousAinsi, vous pouvez voir quelle commande est exécutée pour lancer le noyau. Donc, si vous exécutez la commande ci-dessous
Alors maintenant, si nous mettons à jour notre
kernel.json
fichierEt si je lance
jupyter notebook
les graphiques sont automatiquementinline
Notez que l'approche ci-dessous fonctionne également, où vous créez un fichier sur le chemin ci-dessous
~ / .ipython / profile_default / ipython_kernel_config.py
Mais l'inconvénient de cette approche est qu'il s'agit d'un impact global sur chaque environnement utilisant python. Vous pouvez également considérer cela comme un avantage si vous souhaitez avoir un comportement commun dans tous les environnements avec un seul changement.
Choisissez donc l'approche que vous souhaitez utiliser en fonction de vos besoins
la source
Dans votre
ipython_config.py
fichier, recherchez les lignes suivanteset
et décommentez-les. Ensuite,
None
passez au backend que vous utilisez (j'utilise'qt4'
) et enregistrez le fichier. Redémarrez IPython, et matplotlib et pylab doivent être chargés - vous pouvez utiliser ladir()
commande pour vérifier quels modules se trouvent dans l'espace de noms global.la source
Dans (l'actuel) IPython 3.2.0 (Python 2 ou 3)
Ouvrez le fichier de configuration dans le dossier caché .ipython
ajouter la ligne suivante
ajoutez-le juste après
la source
Suite à @Kyle Kelley et @DGrady, voici l'entrée qui se trouve dans le
$HOME/.ipython/profile_default/ipython_kernel_config.py
(ou quel que soit le profil que vous avez créé)Changement
à
Cela fonctionnera ensuite dans les sessions ipython qtconsole et notebook.
la source
Créez n'importe quel
.py
fichier~/.ipython/profile_default/startup/
contenantla source