2010-08-09 13 views
49

¿Hay una GUI para IPython que me permita abrir/ejecutar/editar archivos de Python? Mi forma de trabajar en IDLE es tener dos ventanas abiertas: el shell y un archivo .py. Edito el archivo .py, lo ejecuto e interactúo con los resultados en el shell.Flujo de trabajo de IPython (editar, ejecutar)

¿Es posible usar IPython de esta manera? ¿O hay una forma alternativa de trabajar?

+0

Ver http://stackoverflow.com/questions/81584/what-ide-to-use- for-python y discusiones SO similares. – gimel

+3

Ninguno de los acrónimos utilizados en esa página coincide con lo que estoy buscando ... – compie

Respuesta

49

Cuando estoy trabajando con Python, generalmente tengo dos ventanas de terminal abiertas, una con IPython y la otra con un Vim bastante personalizado.

Dos buenos recursos:


Aunque suena como lo que quiere es función mágica de IPython %ed/%edit:

Un exa MPLE de lo que puede hacer:

In [72]: %ed 
IPython will make a temporary file named: c:\docume~1\wjwe312\locals~1\temp\ipython_edit_ar8veu.py 

En el archivo que puse:

x = "Hello World" 
print 3 

Después de guardar y dejar el archivo:

Editing... done. Executing edited code... 
3 
Out[72]: "x = 'Hello world'\nprint 3\n" 

In [73]: x 
Out[73]: 'Hello world' 

Puede definir funciones o cualquier otra cosa - sólo recuerde que el contenido del archivo se ejecutará cuando lo cierre.

Otro flujo de trabajo similar es cd en el directorio que contiene el script de Python que está editando con su editor favorito. Luego puede %run el script desde dentro de IPython y tendrá acceso a todo lo definido en el archivo. Por ejemplo, si usted tiene la siguiente en el archivo test.py en su directorio /home/myself:

class Tester(object): 
     def __init__(self): 
      print "hi" 

    def knightme(name): 
     print "Hello, Sir ", name 

A continuación, puede hacer lo siguiente:

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 

O bien una mezcla o uno de esos flujos de trabajo debe darle algo muy similar a la forma en que estás acostumbrado a trabajar en IDLE.

+8

Si solo quiere editar un archivo de ipython sin ejecutarlo, haga '% edit -x '. – snapshoe

+0

ma3204, ¡eso es increíblemente útil! Probablemente apenas soy competente con IPython, solo lo uso como un shell avanzado "regular". Tiene muchas características que simplemente no sé. –

+2

¿Pero hay alguna manera de usar IPython * dentro de * IDLE? Porque el intérprete estándar es una mierda y el símbolo del sistema de Windows apesta. Quiero el intérprete de IPython en una consola que realmente funcione bien con él. – endolith

0

Personalmente, yo uso lo que sugiere @Wayne, una combinación de empuje y ipython ...

Sin embargo, si usted prefiere un enfoque diferente, echar un vistazo a spyder.

A partir de la última versión (1.1) ipython debe estar completamente integrado. Si descargas una versión anterior, las cosas funcionarán bien con ipython como un shell externo, pero no obtendrás algunas de las ingeniosas funciones de spyder (como ver todas las variables definidas actualmente en la ventana del área de trabajo).

Spyder es definitivamente un poco pesado, pero es un proyecto interesante.

Otro (muy, muy, nuevo) proyecto similar para echar un vistazo es iep. Trabajará con ipython como shell y estoy dispuesto a apostar a que la integración de ipython será más agradable antes de que pase demasiado tiempo. En cualquier caso, iep es esencialmente una alternativa más ligera al spyder.

Ambos están orientados a la informática científica, por lo que tienen una buena integración con cosas como matplotlib (y por lo tanto pueden ejecutar automáticamente bucles principales de GUI en un hilo separado). No son como los IDE "normales", pero pueden llenar el nicho que estás buscando bastante bien.

17

Spyder, anteriormente conocido como SPyderlib/Spyder2

Bastante ligero, rápido y el apoyo casi todos features que necesitará para trabajar con un proyecto pitón. Se puede editar y ejecutar archivos .py en una instancia IPython incrustado y luego interactuar con ellos, establecer puntos de interrupción, etc.

enter image description herefull-size

4

Tome un vistazo a DreamPie. Puede ser lo que estás buscando.

2

Si te gusta el flujo de trabajo bajo Matlab, entonces es probable que debe tratar los dos siguientes:

, Pruebe la combinación de Spyder y Vim.

  • Editar archivos de pitón en Vim (Spyder puede volver a cargar el archivo automáticamente)

  • Ejecutar el código en Spyder (en el mismo intérprete, que es importante para mí):

  • Uso F9 para ejecutar el archivo actual

  • Ctrl+F9 para ejecutar el bloque seleccionado

, Uso Vim + conque-shell. (on google code)

  • Abra su preferido Python interpreter en Vim,

    por ejemplo, simplemente :ConqueTermSplit python.

  • continuación, seleccione alguna visual Python código

  • prensa F9 para pegar y ejecutarlo en el Python interpreter buffer.

Nota: algunas más:

  • :ConqueTermVSplit python,
  • :ConqueTerm python
  • :ConqueTermVSplit rlwrap python

    Si su intérprete pierde readline, puede utilizar rlwrap.

3

Personalmente, me gusta PyScripter. Desafortunadamente, solo funciona en Windows, pero también funciona perfectamente en Wine.

1

Es posible que como ... PySlices

Es una especie de un híbrido cáscara/editor que le permite guardar la sesión como archivos de Python (apenas) modificados especiales llamados .pyslice archivos.

Ahora forma parte de wxPython, así que simplemente instale eso (v2.8.11 o posterior) y ejecute "python -m wx.py.PySlices" en la línea de comando para iniciarlo.

Dicho esto, sigo utilizando un editor externo para scripts (geany).

1
sudo apt-get install ipython 

Una vez que haya terminado con la instalación de ipython.

inicio ipython desde el terminal (acaba de golpear ipython en el ternminal)

Para ejecutar ravi.py archivo de todo lo que tiene que hacer es

%run ravi.py 
2

La última versión de IdleX apoya IPython dentro de IDLE, así como el% de edición de magia. Puede ejecutar sus archivos desde el editor IDLE dentro del shell de IPython de muchas maneras, ya sea por F5 (ejecute todo), F9 (ejecute una selección) o Ctrl + Enter (ejecute un subcódigo).

5

Try Spyder, he pasado todo el día tratando de encontrar un IDE que tiene la funcionalidad de ipython y Spyder simplemente patea fuera del parque ..

Autocompletar está arriba a la derecha muesca de instalar, no hay archivos de configuración y toda esa porquería, y tiene una terminal Ipython en la esquina para que puedas ejecutar tu código al instante.

gran aprobado

1

Quiero sugerir un excelente plug-in para vim que hace que la integración bidireccional entre Vim y IPython: vim-ipython.

Desde la página del proyecto en http://github.com/ivanov/vim-ipython:

El uso de este plugin, puede enviar líneas o archivos enteros de IPython a ejecutar y también volver a la introspección y la palabra terminaciones de objeto en Vim, al igual que lo que se obtiene con: ¿objeto? y objeto en IPython.

Este complemento tiene una gran limitación: no es compatible con Python 3 (está previsto).

0

Puede usar el módulo de autorrecarga en IPython para recargar código automáticamente.

abierto jupyter qtconsole o jupyter console y tipo:

%load_ext autoreload 
%autoreload 2 
from your_work_file import * 

Ahora, cada vez que se guarda your_work_file.py, que se volverá a cargar automáticamente.

Consejo: si quieres que esto suceda de forma automática, poner los followinglines en su ipython_config.py archivo:

c.InteractiveShellApp.extensions = ['autoreload']   
c.InteractiveShellApp.exec_lines = ['%autoreload 2'] 
0

Trate Ptpython. Tiene una mejor integración con VIM. Puede editar directamente en VIM simplemente presionando V. También permite navegar por su historial ... por lo que puede codificar prácticamente en el shell y aumentar progresivamente su código.

Si ya está familiarizado con ipython, puede comprobar las ventajas de ptpython aquí:

https://www.youtube.com/watch?v=XDgIDslyAFM

Cuestiones relacionadas