Cómo depurar comandos de Django en PyCharm

84

Sé cómo ejecutar comandos con PyCharm (Herramientas -> Ejecutar la tarea manage.py), pero también me gustaría depurarlos, incluidos mis comandos y los comandos de aplicaciones de terceros.

Taras Bilynskyi
fuente
Si está intentando depurar los comandos manage.py (los de la carpeta app / management / commands /), puede usar la respuesta de @ Kevin, pero ponga manage.py en el "Script" y el comando que desea ejecutar "Parámetros de script".
RVC

Respuestas:

170

Puede depurar un comando de administración / gestión de Django personalizado en PyCharm creando una entrada de servidor Django personalizada en el menú Ejecutar / Depurar configuración:

  • Haga clic en Edit Configurations....
  • Haga clic en el signo más y elija Django server.
  • Complete los campos Namecomo desee, borre los campos Hosty Port, marque Custom run commande ingrese el nombre de su comando a la derecha de la casilla de verificación.
  • Ingrese cualquier argumento adicional de la línea de comandos en el campo separado Additional options, no agregado en el comando de ejecución.
  • Haga clic en Aceptar.

Ahora establezca un punto de interrupción, elija su nueva configuración en el menú Ejecutar / Depurar configuración y haga clic en el botón Depurar. Et voilà!

Kevin
fuente
20
Énfasis para personas como yo que aparentemente no pueden leer correctamente: los campos Host y Port deben borrarse, de lo contrario, el comando personalizado no funcionará.
Henrik Heimbuerger
Lo siento, pero ¿qué se supone que debo poner en "comando de ejecución personalizado"? Llamé al mío "simple_chart" pero obtengo "comando desconocido" cuando trato de depurar. Tengo un método en views.py llamado simple_chart en el que he colocado un punto de interrupción. Todo lo que quiero es que el depurador se detenga allí para poder explorar las variables en el entorno local.
Viernes
1
No tengo la opción de servidor Django en el plus
Dejell
10
Para aquellos que están luchando: el cuadro "comando de ejecución personalizado" debe contener solo su comando. Por ejemplo, si está ejecutando py manage.py cmddesde la consola, este cuadro contendrá simplemente cmd.
texnic
1
@Dejell: necesitas la versión profesional de Pycharm para el soporte de DJANGO. ( jetbrains.com/pycharm/features/editions_comparison_matrix.html )
PeterN
8

Dado que borrar Host y Port no hará que el comando se ejecute en absoluto (PyCharm 5), la solución que encontré es usar una configuración de ejecución de Python en lugar de un servidor Django . Complete Scriptcon su script manage.py, otros parámetros Script Parametersy ajuste su entorno, como Working directory.

Monitor de peces
fuente
2
Esto es lo que hizo que funcionara para mí (pycharm 2016). Coloque manage.py en el script, su comando de administración de django en los parámetros del script (junto con cualquier indicador de comando de administración de django) y cambie el directorio de trabajo.
Yunti