Search code examples
pythonflaskpycharmflask-cli

Run Flask CLI command with PyCharm debugger


I have created a custom CLI command in Flask, that I am able to run via flask my_command in the terminal. I want to run this command using PyCharm's debugger.

I created a "Flask server" configuration, and running it with the PyCharm debugger stops at breakpoints I set inside view functions. But if I try to run my CLI command from PyCharm's terminal, it doesn't stop at breakpoints in the command.

Do I need a custom configuration to debug custom CLI commands? I found a question about Django commands, but PyCharm's "Flask server" configuration doesn't have the same options. How can I configure PyCharm to debug a Flask CLI command?


Solution

  • PyCharm's "Flask server" configuration only calls the flask run command, it doesn't provide a way to call other commands. To do that, create a regular "Python" configuration that runs the flask command with the arguments you want.

    • Create a "Python" configuration and give it a name.
    • Select "Module name" instead of "Script path" and type flask.
    • Fill out "Parameters" with the arguments to pass. As of Flask 2.2, you can use the --app and --debug options. For example --app my_app my_command --option A.
      • Prior to Flask 2.2, edit the environment variables to include FLASK_APP=my_app and FLASK_ENV=development.
      • You may also need to configure "Working directory" to point at your project directory, if your command depends on where it's being run from.

    Running this configuration with the debugger will stop at breakpoints in your CLI command instead of running the server.