Maîtriser les riches fonctionnalités d'IPython (2)

Auparavant, explications sur Utilisation des fonctionnalités riches d'IPython et Comment utiliser IPython Notebook 72d744554f0454139c0f), Démarrer le serveur de notebook IPython J'ai écrit la méthode.

Cette fois, je continuerai à écrire sur le changement de profil, la personnalisation des invites et l'utilisation du débogueur interactif (pdb). Les débogueurs interactifs sont particulièrement importants et si vous pouvez les maîtriser, votre productivité de développement augmentera considérablement.

Changement de profil

Vous pouvez générer un profil par défaut avec la commande suivante:

ipython profile create default

Cela créera un répertoire comme .ipython / profile_default dans l'emplacement défini comme votre répertoire personnel. Cette partie par défaut est le nom du profil.

Vous pouvez principalement définir les éléments suivants dans le profil.

Vous pouvez spécifier le nom du profil en spécifiant des options telles que ipython --profile = default lors du démarrage d'IPython. Plus d'informations sur les profils peuvent être trouvées dans la documentation (http://ipython.org/ipython-doc/2/config/intro.html#profiles).

Personnalisation rapide

profile_default / ipython_config.py définit les paramètres généraux de l'invite du shell IPython. Vous pouvez en savoir plus sur ce fichier dans la documentation IPython (http://ipython.org/ipython-doc/2/development/config.html#python-configuration-files).

Dans ce fichier, une instance est d'abord créée en tant que c = get_config (), et l'environnement est défini en définissant la valeur de cette instance. Par exemple, dans mon environnement, l'invite est la suivante.

c.PromptManager.out_template = r'[\#]: '
c.PromptManager.in2_template = r'{color.Green}[{color.LightGreen}\D{color.Green}]: '
c.PromptManager.in_template = r'{color.Yellow}\h{color.LightBlue}[{color.LightCyan}\T{color.LightBlue}]{color.Green}[{color.LightGreen}\#{color.Green}]: '

out définit la ligne de sortie, in2 définit la ligne de continuation et in définit la ligne d'entrée.

0.png

Dans le fichier de configuration, l'instance c est utilisée pour l'opération, mais la commande% config magic est utilisée pour faire fonctionner l'environnement à partir du shell.

Vous pouvez également vous référer à la Documentation pour étendre l'invite.

Dans l'exemple ci-dessus, certaines bibliothèques sont importées par le script d'initialisation comme écrit précédemment.

Commande magique et commande shell

Les commandes commençant par% sont appelées commandes magiques. Si vous tapez uniquement% et entrez un onglet, la fonction de complétion des onglets d'IPython affichera la liste. Par exemple,% pwd affichera le répertoire courant. % qui affichera les espaces de noms d'instance valides.

hoge = "fuga"
%who
#=> hoge

De plus, les commandes commençant par! Sont transmises au shell sous forme de commandes shell.

Débogueur interactif

Dans IPython, vous pouvez utiliser l'extension de pdb Debugger. La commande% debug débogue la dernière exception qui s'est produite. Vous pouvez définir la commande% pdb pour démarrer automatiquement le débogueur lorsqu'une exception se produit.

La documentation d'IPython (http://ipython.org/ipython-doc/2/interactive/reference.html#using-the-python-debugger-pdb) décrit également comment utiliser pdb.

Si vous définissez les fonctions set_trace () et debug () comme suit, vous pouvez écrire set_trace () n'importe où dans votre code pour arrêter l'exécution et démarrer le débogueur.

def set_trace():
    from IPython.core.debugger import Pdb
    Pdb(color_scheme='Linux').set_trace(sys._getframe().f_back)

def debug(f, *args, **kwargs):
    from IPython.core.debugger import Pdb
    pdb = Pdb(color_scheme='Linux')
    return pdb.runcall(f, *args, **kwargs)

Vous pouvez également utiliser la fonction debug () pour lancer un débogueur interactif pour n'importe quelle fonction. Par exemple, l'exemple ci-dessous lance un débogueur interactif pour la fonction f.

1.png

Par exemple, dans cet état, appuyer sur a affichera une liste des arguments de la fonction actuelle, appuyer sur w affichera la trace de la pile à la position actuelle, appuyer sur s entrera en action et u / d augmentera ou abaissera la pile des appels de fonction. Je vais. Vous pouvez également afficher des variables, ajouter des opérations arbitraires, etc.

Résumé

Un tel environnement interactif est si pratique et productif qu'une fois que vous apprenez à développer avec IPython, vous ne pouvez plus vous en passer. Il n'est pas exagéré de dire qu'IPython et votre éditeur préféré sont suffisants pour développer en Python.

référence

Introduction à l'analyse de données avec Python http://www.oreilly.co.jp/books/9784873116556/

Recommended Posts

Maîtriser les riches fonctionnalités d'IPython (2)
Maîtrisez les riches fonctionnalités d'IPython
À propos des fonctionnalités de Python
J'ai touché certaines des nouvelles fonctionnalités de Python 3.8 ①
Utilisation pratique d'ipython
Le début de cif2cell
le zen de Python
L'histoire de sys.path.append ()
Caractéristiques du langage Go
Principales caractéristiques de ChainMap
La vengeance des types: la vengeance des types
Mesurer l'importance des entités avec un outil de forêt aléatoire
Je veux connaître la nature de Python et pip
Essayez d'extraire les caractéristiques des données de capteur avec CNN
Grattage du résultat de "Schedule-kun"
L'histoire de la construction de Zabbix 4.4
Vers la retraite de Python2
Comparez les polices de jupyter-themes
Caractéristiques du langage de programmation [Memo]
Expliquez le code de Tensorflow_in_ROS
Réutiliser les résultats du clustering
GoPiGo3 du vieil homme
Calculez le nombre de changements
La popularité des langages de programmation
Changer le style de matplotlib
Visualisez la trajectoire de Hayabusa 2
À propos des composants de Luigi
Composants liés du graphique
Filtrer la sortie de tracemalloc
Simulation du contenu du portefeuille
Le pouvoir des pandas: Python
Premier python ② Essayez d'écrire du code tout en examinant les fonctionnalités de python
À propos de l'API SystemChannels pour tirer parti des fonctionnalités spécifiques à la plate-forme Flutter