The EnergyFlow package is written in pure Python and the core depends only on NumPy, the fundamental package for scientific computing with Python, and six, which is a lightweight module to patch some inconvenient differences between Python 2 and Python 3. The extra features require additional packages as specified below:

The EnergyFlow package is designed to work with Python 2.7, 3.5, 3.6, and 3.7. These can be installed from here. A recent version of Python 3 is highly recommended, ideally 3.6 or higher.

Install via pip

To install from PyPI using pip, make sure you have one of the supported versions of Python installed and that pip is available in the system path. Simply execute pip install energyflow and EnergyFlow will be installed in your default location for Python packages.


As of version 0.8.2, EnergyFlow has used a modified version of numpy.einsum to do the heavy lifting for the computation of EFPs. NumPy 1.14.0 changed einsum to use tensordot when possible compared to 1.13.3, which only used c_einsum. It was found that the multi-process approach used by batch_compute is typically much faster when using the inherently single-threaded c_einsum versus tensordot, which can call BLAS. Hence the custom version of einsum shipped with EnergyFlow disables all calls to tensordot and uses only c_einsum.