Python - Dependency Management

1 - About

3 - Declaration


3.1 - requirement specifier

When you install a package, or declaring a dependency, you need to specify an package id that's known in Python as a requirement specifier.

It's the setuptools and pkg_resources package syntax

PyPiProjectName [extra's] [comparison_operator version_identifier]


  • PyPiProjectName is the project’s PyPI name,
  • optionally followed by a comma-separated list of “extras” in square brackets,
  • optionally followed by a comma-separated list of version specifiers where a version specifier is:
    • one of the operators <, >, ⇐, >=, == or !=,
    • followed by a version identifier.

Example of requirement specifiers:

docutils >= 0.3

# comment lines and \ continuations are allowed in requirement strings
BazSpam ==1.1, ==1.2, ==1.3, ==1.4, ==1.5, \
    ==1.6, ==1.7  # and so are line-end comments

# Extra
PEAK[FastCGI, reST]>=0.5a4


3.2 - Non Mandatory (Extras)

4 - Location

4.1 -

Library dependencies are specified in the install_requires property of the Python - file.

It takes a string or list of strings containing requirement specifiers specifying what other distributions need to be installed.

When the project is installed by pip, this is the specification that is used to install its dependencies.


each requirement must begin on a new line.



4.1.1 - Operating System

4.2 - Requirement file

Pip Requirements Files

<wrap warning >There is no dependency tree mechanism</note>

Example of file:


4.3 - Pipfile

<wrap warning >There is no dependency tree mechanism. Use</note>

Pipfile is the configuration file of the pipenv utility and is aimed to an application. (Weird). Ie a library that will never be reused by others.

Pipfile and its sister Pipfile.lock are a replacement for the existing standard pip's requirements.txt file


5 - Management

5.1 - Installation

5.1.1 - From file

pip install -e .
pip install -e git+https://somerepo/bar.git#egg=bar


  • The first line says to install your project and any dependencies.
  • The second line overrides the “bar” dependency, such that it’s fulfilled from VCS, not PyPI.

5.1.2 - From file without dependency

Installation without dependency

pip install XXX --no-deps

5.1.3 - From a Requirements File

With a Pip Requirements Files in a virtual environment or global

pip install -r requirements.txt

5.2 - List

  • List the package (dependency) installed in your environment

pip list --format=columns

Package          Version
---------------- -------
Flask            0.11.1
pip              18.1
requests         2.11.1
setuptools       39.0.1

6 - Specification

7 - Documentation / Reference

Data Science
Data Analysis
Data Science
Linear Algebra Mathematics

Powered by ComboStrap