Simple dependency management for a Python project

dependency-management, pip, python

Solution

A common way to manage dependencies for a python project is via a file in root of the project named "requirements.txt". An easy way to make this is:

- Setup a python virtualenv for your project

- Manually install the required modules via pip

- Execute `pip freeze > requirements.txt` to generate the requirements file

You can then install all the dependencies in other locations using `pip install -r requirements.txt`.

If you want dependencies to be installed automatically when other people `pip install` your package, you can use `install_requires()` in your `setup.py`.

Problem

I am coming from Java background and completely new at Python. Now I have got a small project with a few Python files that contain a few imports. I know I does not have the imported dependencies installed on my computer, so I try to figure out the required dependencies and run `pip` to install them. I would like to do it differently. I would prefer to have the dependencies listed in a single file and install them automatically during the build process. Does it make sense ? If it does I have a few questions: - How to list the project dependencies required to install by `pip` ? - How to run `pip` to install the dependencies from the list ?

Original source