Existe-t-il une interface graphique pour IPython qui me permet d'ouvrir/exécuter/modifier des fichiers Python? Ma façon de travailler dans IDLE est d'avoir deux fenêtres ouvertes: le shell et un fichier .py. Je modifie le fichier .py, exécutez-le et interagissez avec les résultats dans le shell.
Est-il possible d'utiliser IPython comme ça? Ou existe-t-il une autre façon de travailler?
Lorsque je travaille avec python, j'ai généralement deux fenêtres de terminal ouvertes - une avec IPython et l'autre avec un Vim assez personnalisé.
Deux bonnes ressources:
Bien que cela ressemble à ce que vous voulez, c'est la fonction magique d'IPython %ed
/%edit
:
Un exemple de ce que vous pouvez faire:
In [72]: %ed
IPython will make a temporary file named: c:\docume~1\wjwe312\locals~1\temp\ipython_edit_ar8veu.py
Dans le dossier je mets:
x = "Hello World"
print 3
Après avoir enregistré et quitté le fichier:
Editing... done. Executing edited code...
3
Out[72]: "x = 'Hello world'\nprint 3\n"
In [73]: x
Out[73]: 'Hello world'
Vous pouvez définir des fonctions ou toute autre chose - n'oubliez pas que le contenu du fichier sera exécuté lorsque vous le fermerez.
Un autre workflow similaire consiste à cd
vers le répertoire contenant votre Python que vous éditez avec votre éditeur préféré. Ensuite, vous pouvez %run
le script depuis IPython et vous aurez accès à tout ce qui est défini dans le fichier. Par exemple, si vous avez ce qui suit dans le fichier test.py
dans ton /home/myself
répertoire:
class Tester(object):
def __init__(self):
print "hi"
def knightme(name):
print "Hello, Sir ", name
Ensuite, vous pouvez effectuer les opérations suivantes:
In [42]: cd /home/myself
/home/myself
In [43]: %run test.py # <Tab> autocomplete also works
In [44]: knightme('John')
Hello, Sir John
In [45]: t = Tester()
Hi
Un mix ou l'un de ces workflows devrait vous donner quelque chose de très similaire à la façon dont vous êtes habitué à travailler dans IDLE.
Spyder , anciennement SPyderlib/Spyder2
Assez léger, rapide et prend en charge presque tous fonctionnalités vous aurez toujours besoin de travailler avec un projet python. Il peut éditer et exécuter des fichiers .py dans une instance IPython intégrée et puis interagissez avec eux, définissez des points d'arrêt, etc.
Essayez Spyder, j'ai passé toute la journée à essayer de trouver un IDE qui a la fonctionnalité d'ipython et Spyder vient de le lancer hors du parc ..
La saisie semi-automatique est de premier ordre dès l'installation, pas de fichiers de configuration et toutes ces conneries, et elle a un terminal Ipython dans le coin pour que vous puissiez exécuter instantanément votre code.
grand bravo
Jetez un oeil à DreamPie . Peut-être ce que vous cherchez.
Personnellement, j'aime PyScripter . Malheureusement, cela ne fonctionne que sur Windows, mais fonctionne également parfaitement dans Wine.
La dernière version de IdleX prend en charge IPython dans IDLE, ainsi que la magie d'édition%. Vous pouvez exécuter vos fichiers à partir de l'éditeur IDLE dans le shell IPython de nombreuses façons, soit par F5 (tout exécuter), F9 (exécuter une sélection) ou Ctrl + Entrée (exécuter un sous-code).
Si vous aimez le workflow sous Matlab
, vous devriez probablement essayer les deux suivants:
1 , Essayez la combinaison de Spyder
et Vim
.
Modifier python dans Vim
(Spyder
peuvent recharger le fichier automatiquement)
Exécutez le code dans Spyder
(dans le même interpréteur, ce qui est important pour moi):
Utilisez F9
pour exécuter le fichier actuel
Ctrl+F9
pour exécuter le bloc sélectionné
2 , Utilisez Vim
+ conque-Shell
. ( sur google code )
Ouvrez votre Python interpreter
Préféré dans Vim
,
par exemple, juste :ConqueTermSplit python
.
puis visuel sélectionnez un code Python
appuyez sur F9
pour le coller et l'exécuter dans le Python interpreter buffer
.
Remarque: quelques autres:
:ConqueTermVSplit python
,:ConqueTerm python
:ConqueTermVSplit rlwrap python
Si votre interprète manque readline
, vous pouvez utiliser rlwrap
.
Je veux suggérer un excellent plugin pour vim qui fait une intégration bidirectionnelle entre Vim et IPython: vim-ipython.
Depuis la page du projet sur http://github.com/ivanov/vim-ipython :
En utilisant ce plugin, vous pouvez envoyer des lignes ou des fichiers entiers pour qu'IPython s'exécute, et également récupérer l'introspection d'objets et les compléments de Word dans Vim, comme ce que vous obtenez avec: objet? et objet. en IPython.
Ce plugin a une grosse limitation: il ne prend pas en charge python 3 (c'est prévu).
Vous pourriez aimer PySlices ...
C'est une sorte d'hybride Shell/éditeur qui vous permet d'enregistrer votre session en tant que fichiers spéciaux (à peine) modifiés python appelés fichiers .pyslice.
Il fait maintenant partie de wxPython , alors installez-le (v2.8.11 ou version ultérieure) et exécutez "python -m wx.py.PySlices" sur la ligne de commande pour le lancer.
Cela dit, je finis toujours par utiliser un éditeur externe pour les scripts (geany).
Sudo apt-get install ipython
Une fois que vous avez terminé d'installer ipython.
Démarrez ipython à partir du terminal (appuyez simplement sur ipython
dans le ternminal)
Courir ravi.py
fichier tout ce que vous devez faire est
%run ravi.py
Personnellement, j'utilise ce que @Wayne a suggéré, une combinaison de vim et ipython ...
Cependant, si vous préférez une approche différente, jetez un œil à spyder .
À partir de la dernière version (1.1), ipython devrait être entièrement intégré. Si vous téléchargez une version antérieure, les choses fonctionneront bien avec ipython en tant que shell externe, mais vous n'obtiendrez pas quelques-unes des fonctionnalités astucieuses de spyder (comme l'affichage de toutes les variables actuellement définies dans la fenêtre de l'espace de travail).
Spyder est définitivement un peu lourd, mais c'est un projet intéressant.
Un autre (très, très, nouveau) projet similaire à examiner est iep . Cela fonctionnera (en quelque sorte) avec ipython en tant que Shell, et je serais prêt à parier qu'une meilleure intégration ipython se poursuivra avant trop longtemps. En tout cas, iep est essentiellement une alternative plus légère à spyder.
Les deux sont orientés vers l'informatique scientifique, et ont donc une bonne intégration avec des choses comme matplotlib (et peuvent donc exécuter automatiquement les boucles principales de gui dans un thread séparé). Ils ne sont pas tout à fait comme des IDE "normaux" mais ils peuvent très bien remplir le créneau que vous recherchez.
Vous pouvez utiliser le module de chargement automatique dans IPython pour recharger automatiquement le code.
Ouvert jupyter qtconsole
ou jupyter console
et tapez:
%load_ext autoreload
%autoreload 2
from your_work_file import *
Maintenant, chaque fois que vous enregistrez your_work_file.py
, il sera automatiquement rechargé.
Astuce: si vous voulez que cela se produise automatiquement, mettez les lignes suivantes dans votre ipython_config.py
fichier:
c.InteractiveShellApp.extensions = ['autoreload']
c.InteractiveShellApp.exec_lines = ['%autoreload 2']
Essayez Ptpython
. Il a une bien meilleure intégration avec VIM
. Vous pouvez directement éditer dans VIM en appuyant simplement sur V
. Il permet également de parcourir votre historique .. vous pouvez donc à peu près du code dans le Shell, et construire progressivement votre code.
Si vous connaissez déjà ipython
, vous pouvez vérifier les avantages de ptpython
ici: