Poetry is relatively new packaging and dependency manager. It makes it very easy to upload libraries to PyPI, manage dependencies visually, and has a couple of handy features. Today, I'm not going to do a deep dive into how Poetry works and all its features. Today I just want to focus on configuring a Django project.
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
mkdir django_poetry_example && ls django_poetry_example
You will be asked to confirm the information about your project. You can skip through most of it.
poetry add django. Poetry will add django to the pyproject.toml file under the dependencies section. A virtual environment will also be created for you.
django-admin startproject django_poetry_example .
When you need to run any python function (for example,
python manage.py createsuperuser) you have two options.
You can leverage poetry run, which will run against the current project's dependencies. The command will be this:
poetry run python manage.py createsuperuser
You can activate the virtual environment with a poetry shell command. Now you can run python commands, as is. They will be run with dependencies you have installed.
If you need to have the requirements.txt file with all the dependencies, you can run poetry export -f requirements.txt --output requirements.txt. If you have configured a CI/CD job that auto deploys your project, you can add this function as a step, which will generate the updated version on each update.
If you prefer a more visual approach, I have made a video that shows how to start a Django project with Poetry.
If you have any feedback, please let me know on Twitter.