Experimental Python Requirements Calculator

This is an experimental approach to fix one of the most fundamental issues with pip: The lack of a dependency resolver.

Warning

Do not use this on production systems. It is highly experimtal and may contain security bugs!

Requirements

To use eprc, you need the following components:

  • Python 2.7 (for eprc and the extractors)
  • Java 7 or 8 (for the solver)
  • Redis (for caching/storage)

Usage

Make sure that Redis is up and running and that the project that you want to install has a setup.py. Now lets generate a requirements.txt file that has a closed and optimal set of packages:

eprc calc path/to/project

Hint

This might take a while because eprc fetches all versions of all somehow required packages and tries to extras meta information. This is only done once because Redis caches this meta data for future sessions. There are plans to set up a public caching server.

Caution

In case that eprc is not able to find a requirements set without conflicts, you will only get a message and no requirements.txt file will be written. Sadly there won’t be any information about the packages that resulted in the conflict.

In case that eprc was able to find a requirements set without conflicts, you can now install this set and your project:

pip install requirements.txt
cd path/to/project && python setup.py install

Tip

Use eprc calc –help to get more information about the different options and how to calculate a requirements set for multiple projects simultaneously.

Indices and tables