Introducing blackfire-python command
Python developers, benefit from an improved developer-experience with our new blackfire-python command!
Blackfire has been supporting Python since January 2020, and it has been continuously improved since then. Support for Django and Flask have been implemented via the Blackfire SDK for Python.
Today I would like to announce a new step forward in the developer experience by introducing the blackfire-python
command.
Make the Python Probe Easier to Use
If you are a Python developer using Django or Flask, you are probably used to manipulating middleware. While this concept helps you stay in control of your application’s behavior, it can become cumbersome. You need to explicitly modify your application settings in order to enable or disable some middleware. This is specifically the case when you want to use low-level tools like Blackfire, which won’t affect your application per se.
In order to simplify and to unify the developer experience, we introduced a new command: blackfire-python
. This command does the dirty work for you, by adding the appropriate middleware in the appropriate position. The result is that, when using this command, your web application will automatically detect incoming profile requests and activate the probe when needed, without impacting regular requests.
To use it, prepend your python commands by blackfire-python
:
# With Django development server blackfire-python python manage.py runserver # With Django using gunicorn webserver blackfire-python gunicorn myapp.wsgi # With Flask development server export FLASK_APP=hello.py blackfire-python flask run
Note that, at the time of writing this article, only Django and Flask are supported by blackfire-python
.
Django and Flask middleware for Blackfire are now deprecated and will raise a warning if you try to use them.
You may useblackfire.patch_all()
instead.Read more in the documentation for Django and Flask integrations.
Running CLI Commands
The blackfire-python
command is not only about web requests…
In the past, in order to trigger profiles with Python CLI commands using blackfire run
, a site-specific configuration hook, blackfire_bootstrap.pth
, used to be needed.
This is not needed anymore, as you can now profile CLI scripts by using the blackfire-python run
command:
blackfire-python run python my_script.py
blackfire-python run
wraps the blackfire run
command and ensures that the probe is properly activated.
If you previously installed the blackfire_bootstrap.pth
script, you must uninstall it before using blackfire-python
.
python -m blackfire uninstall-bootstrap
Give Blackfire a try?
Play with the demo or subscribe now!
Happy Python Profiling!