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 ?