· Django

PyDev - Eclipse como IDE de Python o Django

En el POST de hoy veremos como configurar Eclipse para editar y debugar proyectos en python, bajo el framework Django. Para ello, recurriremos a Pydev, que es un IDE de Python para Eclipse.

Entre sus características más interesantes, me gustaría destacar las siguientes:

  • Integración con Django
  • Autocompletado de codigo
  • Imports automáticos
  • Análisis de código
  • Debugger
  • Consola interactiva
  • Integración de unittest

Instalación

Lo primero es, en caso de no disponer de Eclipse, descargarnos la versión básica desde la web de Eclipse (o bien aquella que nos vaya bien, en función de los lenguajes de programación con los que solemos trabajar).

Recordemos que Eclipse en sí mismo, está desarrollado en Java, por lo que será necesario que tengas instalada la Máquina Virtual de Java.

Instalar PyDev

  1. Lanzamos Eclipse
  2. New Software: En la barra superior, seleccionamos Help > New Software, y se nos abre una ventana que dice Available Software con una serie de opciones.
  3. Add site: Seleccionamos el Botón Add… de la parte superior, para elegir un site con el que trabajar. ![](./c975a8-c4xm1st5Jz-i77OfDc9PAI_okyPwILMeZ7jlJArMrHw.png)
  4. PyDev location: En name ponemos un texto que nos parezca suficientemente descriptivo, y en location, introducimos el repositorio de pydev, es decir: http://pydev.org/updates ![](./ce59c1-n93m6oGknItjrB_kDBr0U3mkT6IUyl8_6uUCnoSeVhw.png)
  5. Seleccionar PyDev location: Llegado este punto debería estar seleccionado el repositorio que acabamos de añadir (en caso contrario, abrir el desplegable Work with: y seleccionar el repositorio que acabamos de introducir.
  6. Marcar PyDev: En el listado deberíamos ver PyDev y PydevMyLyn Integration. A menos que queráis usar Mylyn, marcamos solo PyDev, y seleccionamos Next. ![](./a3a51a-10e6CjcCCLi0CnvNowNUldFt0zoqpDgQvpYqaqrvw58.png)
  7. Install Details: Nos aparece un resumen de lo que vamos a instalar, que básicamente es el paquete PyDev. Le damos a Next.
  8. Licencia PyDev: Aparece la licencia de PyDev. Nos la leemos enterita (no espero menos de vosotros, XD), la aceptamos y le damos a Finish.
  9. Certificados de PyDev: Durante el proceso de instalación es posible que nos pregunte si confiamos en el certificado de Brainy Software. Ellos son los desarrolladores de PyDev, y por lo que a mi respecta son de confianza, así que le doy a OK. ![](./bffba3-NHNF8bGAxbx0MadI67ybfFWGuXQij5Y8lKMvoLfuOCk.png)
  10. Reiniciar Eclipse: Al acabar la instalación nos pide reiniciar Eclipse. Selecciono YES.

Actualizar PyDev

Es posible que la versión que nos hemos instalado de PyDev no sea la más reciente, por lo que es altamente recomendable mirar si existe alguna actualización, seleccionando: Help > Check for Updates

Eclipse comprobará automáticamente si hay actualizaciones de nuestros plugins (PyDev incluido), y en caso de haberlas nos guiará durante el proceso de actualización.

Perspectiva PyDev

Para poder usar PyDev, tenemos que activar su perspectiva. Esto lo hacemos seleccionando *Window >Open Perspective > Other… ![](./b77348-0xb6PT51ty2shuReW5IXTLOIQStTlqN1qKepw-xAJ1Q.png)

Esto debería hacer aparecer un listado de perspectivas, entre las cuales se haya la que queremos (PyDev).

Seleccionamos la perspectiva PyDev, y le damos a OK.

De entrada, es probable que no veamos ningún cambio, salvo que ahora en la parte superior derecha, tenemos un icono con el logo de PyDev y su nombre. No obstante, desde esta perspectiva, el editor puede trabajar con sintaxis python.

Nuevo proyecto Django

Creando el proyecto Django con VirtualEnvWrapper

Para ver realmente que todo funciona OK, crearemos un proyecto Django, con VirtualEnvWrapper, y luego lo importaremos en Eclipse.

Abrimos el terminal, y desde nuestro directorio de trabajo, escribimos:

miusuario$ mkvirtualenv entornoDemoProject (entornoDemoProject)$ pip install django (entornoDemoProject)$ django-admin.py startproject demo_project (entornoDemoProject)$ cd demo_project (entornoDemoProject)$ chmod u+x manage.py (entornoDemoProject)$ ./manage.py startapp demo

Importando el proyecto en Eclipse

Desde Eclipse, seleccionamos File > New > Project…

Esto nos abre un selector, donde podemos ver una carpeta PyDev. La abrimos, y seleccionamos el PyDev Django Project.

Como nombre de proyecto, utiilzamos el de la carpeta que contiene nuestro proyecto Django, en este caso demo_project. Recordemos que el entorno de proyectos de Eclipse debería ser la misma carpeta en la que hemos creado nuestro proyecto. De este modo, eclipse automáticamente identificará la carpeta con el nombre del proyecto, e incorporará los archivos contenidos en la misma dentro del proyecto.

No obstante, como estamos trabajando con VirtualEnv, tendremos que utilizar el intérprete de Python de nuestro VirtualEnv.

Hacemos click en el enlace para configurar un nuevo interprete, y se nos abre la siguiente ventana.

Hacemos click en New, y le damos el path al binario de python de nuestro virtualenv.

DETALLE: Puedes obtener el path de tu virtualenv desde consola, una vez cargado el entorno, imprimiendo la variable VIRTUAL_ENV, es decir:

(entornoDemoProject)$ echo $VIRTUAL_ENV

Con lo que solo necesitarás buscar, dentro de ese directorio, el ejecutable de python (en el caso linux, esto es en la carpeta bin del path obtenido).

Acto seguido nos aparece un listado de paths a incluir, están todos marcados así que seleccionamos Next, y cerramos la ventana con Ok.

De nuevo en la ventana de selección de intérprete, seleccionamos el interprete recién creado,

y seleccionamos, de nuevo, Next.

En nuestro caso no tenemos proyectos relacionados, por lo que en el siguiente paso seleccionamos directamente Next, y vamos a la vista de BBDD. Por defecto está seleccionado sqlite3, que está bien para desarrollo, por lo que seleccionamos Finish.

Podemos ver a continuación como se muestra nuestro proyecto Django en Eclipse.

Resolución de problemas

Es probable que al hacer esto, PyDev os haya alterado la estructura del proyecto. Esto pasa con algunas versiones de PyDev y Eclipse. Si os fijáis en la captura anterior, los archivos _init_.py, settings.py, urls.py y wsgy.py, están fuera de la carpeta de configuración demo_project, cuando deberían estar dentro de la misma.

Para evitar este inconveniente, lo que podemos hacer es, en lugar de seguir los pasos anteriores para crear un proyecto tipo PyDev Django Project, optar por seleccionar un proyecto tipo PyDev Project. Veremos como en este caso se respeta la estructura de los ficheros internos, y para poder trabajar como si fuera un proyecto Django, solo tendremos que hacer click con el botón derecho sobre el proyecto, y seleccionar PyDev > Set As Django Project.

Véase de paso, en la imagen anterior, como la estructura del proyecto ahora si que es la deseada.

Configurar las propiedades del proyecto

Debemos indicarle a PyDev donde se encuentran el archivo manage.py, y el módulo de settings.

Seleccionamos el proyecto con botón derecho y hacemos click en Properties. En la ventana de settings que aparece, seleccionamos PyDev - Django, e incluimos las rutas (relativas al proyecto), a los archivos manage.py y el módulo settings.

De paso, en PyDev - Interpreter/Grammar, deberíamos comprobar que el interprete de Python es el que hemos creado antes, y en caso contrario, asignarlo.

Ejecución desde Eclipse

Ejecutar el proyecto

Para ejecutar el proyecto vamos a la barra superior, hacemos click en la flecha descendiente al lado del icono verde Run, y el menu que aparece, seleccionamos: Run as > PyDev: Dango

Esto crea una configuración inicial de ejecución del proyecto y lo ejecuta. Debemos parar la ejecución, dandole al icono de Stop rojo que aparece en la vista de consola.

Configuración de ejecución

Ahora que ya tenemos una configuración de ejecución, podemos abrir igual que antes el menú de Run, pero esta vez seleccionamos Run configurations.

Se abre una ventana, donde en el panel lateral podemos ver una lista entre la que destaca PyDev Django, que a su vez tiene un subelemento, que es nuestra configuración de ejecución. Le podemos dar el nombre que queramos, y es importante quue vayamos a la pestaña Interpreter y escojamos de nuevo el intérprete de Python de nuestro VirtualEnv. No olvidemos hacer Apply.

Otro cambio práctico que podemos hacer es, desde la pestaña Common, seleccionar Display in favorites menu tanto de Debug como de Run, para que así, la proxima vez que abramos el menu de Run o Debug, aparezca directamente esta configuración de ejecución ya lista para seleccionar.

Si hemos seguido los pasos anteriores, solo hace falta darle al icono de ejecución en la barra superior, y veremos por consola como aparece el texto que nos sale habitualmente cuando ejecutamos ./manage.py runserver por consola.

Migraciones

Código a migrar

Creamos un modelo muy básico de Django para ver como usar las migraciones desde Eclipse.

Abrimos demo_project/demo/models.py y escribimos:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)

    def __str__(self):
        return self.title + ', by ' + self.author;

Además, abrimos demo_project/demo_project/settings.py, y añadimos la app demo al proyecto:

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'demo'
)

Migración desde Eclipse

Seleccionamos el proyecto con el botón derecho y vamos a Django > Make Migrations.

Veremos como nos pide el nombre de la app de la que queremos preparar las migraciones. Introducimos la nuestra: demo:

Por la salida de consola veremos como se prepara la migración.

A continuación vamos de nuevo al proyecto, botón derecho, Django > Migrate, y veremos por la salida de consola como se ejecuta la migración.

Consola interactiva

Seleccionando sobre el proyecto con el botón derecho, podemos ir a Django > Shell with Django Environment, lo que creará una consola interactiva de django con el entorno de nuestro proyecto cargado, de modo que podemos usar nuestros modelos, por ejemplo.

Debugar

Una de las mayores aportaciones de PyDev, es la capacidad de debugar nuestro proyecto Django.

De forma similar a la ejecución con Run, podemos ir a la barra superior, seleccionar el icono verde de Debug, y pulsar sobre la configuración de ejecución que hemos creado antes.

Automáticamente se ejecuta el proyecto, y Eclipse nos sugiere cargar la perspectiva de Debug, cosa que aceptaremos.

Para poner un breakpoint en una linea de código, solo debemos hacer doble click en el margen izquierdo de la linea, y aparecerá un punto verde. Cuando el código pase por dicho punto, automáticamente se parará y podremos analizar variables y demás, como en qualquier debugger.

Y con esto, cerramos algunas de las características más interesantes de PyDev para Eclipse. Espero que haya sido de ayuda.

¡Saludos!

¿Te ha gustado este artículo? No te cortes, déjame un comentario y ayúdame a compartirlo 😉

Comentarios

Para comentar necesitas una cuenta de GitHub.

9 comentarios del blog anterior
  1. Simón · 23 sept 2016

    Muchas gracias, tu explicación fue excelente, me ayudo mucho, sos un genio!

  2. Enrique Oriol · 27 sept 2016

    ¡Gracias!

  3. Andrés Eduardo García Márquez · 28 dic 2016

    gracias por tu tutorial

    después de este paso: darle al icono de ejecución en la barra superior, y veremos por consola como aparece el texto que nos sale habitualmente cuando ejecutamos ./manage.py runserver por consola.

    me aparece lo siguiente y no me ejecuta el servidor y realmente no se que hacer por favor alguna pista

    Type 'manage.py help ' for help on a specific subcommand.

    Available subcommands:

    [auth]

    changepassword

    createsuperuser

    [django]

    check

    compilemessages

    createcachetable

    dbshell

    diffsettings

    dumpdata

    flush

    inspectdb

    loaddata

    makemessages

    makemigrations

    migrate

    sendtestemail

    shell

    showmigrations

    sqlflush

    sqlmigrate

    sqlsequencereset

    squashmigrations

    startapp

    startproject

    test

    testserver

    [sessions]

    clearsessions

    [staticfiles]

    collectstatic

  4. Andrés Eduardo García Márquez · 28 dic 2016

    ya descubrí la solución en argments dentro de la configuración de ejecución hay que colocarle runserver

  5. Andrés Eduardo García Márquez · 28 dic 2016

    Gracias por la ayuda realmente me sirvió tu esfuerzo

  6. juan muñoz · 3 jul 2017

    muchas gracias de verdad

  7. alejandropariente · 30 oct 2019

    ¡Gracias!

  8. Francisco · 8 mar 2023

    Muchas gracias

    Empiezo a trabajar con el nuevo lenguage

  9. Matias Quinteros · 12 nov 2024

    Hola, consulta: adentro de entornoDemoProject instalo django "pip install django" luego al querer ingresar "django-admin.py startproject demo_project" no me toma esta linea me dice "command no found: django.py"