Installation¶
From PyPi¶
EGTtools can be installed using PyPi on Linux, macOS, and Windows:
pip install egttools
To update your installed version to the latest release, add -U
(or --upgrade
) to the command:
pip install -U egttools
Note
Currently, only the Linux build supports OpenMP parallelization for numerical simulations. This should normally be ok for most applications, since numerical simulations are heavy (computationally) and should be run on a High Power Computing (HPC) clusters which normally run Linux distributions. We are investigating how to provide support for OpenMP in both Windows and Mac OSX. In the meantime, if you really want to run numerical simulations on either of these two platforms, you should follow the compilation instructions below and try to link OpenMP for your platform yourself. Please, if you manage to do so, open an issue or a pull request with your solutions.
Warning
The arm64 and universal2::arm64 have not been tested upstream on CI, so please report any issues or bugs you may encounter.
Warning
For Apple M1 (arm64) you should install using pip install egttools --no-deps
so that pip does not
install the dependencies of the package. This is necessary since there is no Scipy wheel for architecture arm64
available on PyPi yet.
To install the package dependencies you should create a virtual environment
with miniforge. Once you have miniforge installed you can do the
following (assuming that you are in the base miniforge environment):
conda create -n egtenv python=3.9
conda activate egtenv
conda install numpy
conda install scipy
conda install matplotlib
conda install networkx
Build from source¶
To build egttools
from source you need:
A recent version of Linux (only tested on Ubuntu), MacOSX (Mojave or above) or Windows
CMake
version 3.17 or higherC++ 17
Eigen
3.3.*Boost
1.80.*Python 3.7 or higher
Warning
Boost is required in order for EGTtools to use multiprecision integers and floating point numbers with higher precision. You may still be able to compile EGTtools without Boost, but we highly recommend don’t.
Once you install these libraries, you can follow the following steps.
To install all required packages run:
python -m venv egttools-env
source egttools-env/bin/activate
pip install -r requirements.txt
Or with anaconda:
conda env create -f environment.yml
conda activate egttools-env
Also, to make your virtual environment visible to jupyter:
conda install ipykernel # or pip install ipykernel
python -m ipykernel install --user --name=egttools-env
You can build EGTtools by running:
pip install build
cd <path>
python -m build
Where <path>
represents the path to the EGTtools folder. If you are running this while inside the EGTtools folder,
then <path>
is simply ./
.
Finally, you can install EGTtools in development mode, this will allow the installation to update with new modifications to the package:
python -m pip install -e <path>
If you don’t want development mode, you can skip the option `-e`
.
Python distributions¶
- Anaconda
If you use the Anaconda distribution of Python, you can use the same
pip
command in a terminal of the appropriate Anaconda environment, either activated through the Anaconda Navigator or conda tool.- PyPy
Recent versions of PyPy are supported by the pybind11 project and should thus also be supported by EGTtools.
- Other
For other distributions of Python, we are expecting that our package is compatible with the Python versions that are out there and that
pip
can handle the installation. If you are using yet another Python distribution, we are definitely interested in hearing about it, so that we can add it to this list!
Troubleshooting¶
It is possible that you run into problems when trying to install or use EGTtools. This may happen because you are running on a different platform or configuration than what we have listed, or simply because we have not considered your particular scenario/environment.
If this is the case, and you do run into problems, please create a GitHub issue, or write me a quick email. We would be very happy to solve these problems, so that future users can avoid them and we can expand the use of our library.
Pip version¶
If the standard way to install EGTtools results in an error or takes a long time,
try updating pip
to the latest version by running
pip install --upgrade pip
If you do not have pip
installed, you can follow these instructions to
install pip: https://pip.pypa.io/en/stable/installing/