pymoo
Latest Version: pymoo==0.3.1

Installation

The pymoo framework can be run with and without compiled modules. Some computationally more expensive function have been implemented using Cython for speedup. To figure out what version is used after the installation please see Plain/Compiled Modules section.

Setting up the Python environment using Conda

Here, we are setting up the environment in order to be able to use the speedup of Cython. Therefore, before using the install command, the environment needs to be set up. We recommend using miniconda or anaconda.

Please check if conda is available in your current terminal:

conda --version

If you are already familiar with conda you might want to use an environment you have already created, or you might need pymoo in an existing one.

Otherwise, create a new python environment with NumPy preinstalled and activate it:

conda create -n pymoo -y python==3.7 numpy
conda activate pymoo

If the environment is not setup correct, the installation will NOT fail and you will still be able to use pymoo without the benefit of the compiled modules.

PyPi

To use the current stable release of pymoo use

pip install -U pymoo

If you have already installed an older version of the framework you can force an update by using the -U option as shown above.

Development

If you like to use our current development version or like to contribute to our framework you can install the current version on GitHub by

git clone https://github.com/msu-coinlab/pymoo
cd pymoo
pip install .

To compile the modules or see an output log:

pip install Cython
make compile-with-cython

This translates the pyx files to cpp files and then compiles them. If anything fails this will provide more details about why this has happened.

Plain/Compiled Modules

As said above, the pymoo installation will not fail if the modules are not compiled successfully, but no speedup will be available. To check if the compilation has worked during the installation, you can use the following command:

python -c "from pymoo.util.function_loader import is_compiled;print('Compiled Extensions: ', is_compiled())"