Building From Source#

Building from source means that you clone (or fork) the PyAutoLens GitHub repository and run PyAutoLens from there. Unlike conda and pip this provides a build of the source code that you can edit and change, to contribute the development PyAutoLens or experiment with yourself!

A large amount of PyAutoLens functionality is contained in its parent projects:

PyAutoFit https://github.com/rhayes777/PyAutoFit

PyAutoArray https://github.com/Jammy2211/PyAutoArray

PyAutoGalaxy https://github.com/Jammy2211/PyAutoGalaxy

If you wish to build from source all code used by PyAutoLens you may need to build from source these 3 additional projects. We include below instructions for building just PyAutoLens from source or building all projects.

Building Only PyAutoLens#

We upgrade pip to ensure certain libraries install:

pip install --upgrade pip

First, clone (or fork) the PyAutoLens GitHub repository:

git clone https://github.com/Jammy2211/PyAutoLens

Next, install the PyAuto parent projects via pip:

pip install autoconf
pip install autofit
pip install autoarray
pip install autogalaxy

Next, install the PyAutoLens dependencies via pip:

pip install -r PyAutoLens/requirements.txt

Next, install the optional dependency numba via pip (see this link for a description of numba):

pip install numba

For unit tests to pass you will also need the following optional requirements:

pip install pynufft==2020.2.7
pip install pylops==1.11.1

If you are using a conda environment, add the source repository as follows:

[NOTE: Certain versions of conda use the command conda develop (without a dash) instead of those shown below.]

conda-develop PyAutoLens

Alternatively, if you are using a Python environment include the PyAutoLens source repository in your PYTHONPATH (noting that you must replace the text /path/to with the path to the PyAutoLens directory on your computer):

export PYTHONPATH=$PYTHONPATH:/path/to/PyAutoLens

Finally, check the PyAutoLens unit tests run and pass (you may need to install pytest via pip install pytest):

cd /path/to/PyAutoLens
python3 -m pytest

Building All Projects#

We upgrade pip to ensure certain libraries install:

pip install --upgrade pip

First, clone (or fork) all 4 GitHub repositories:

git clone https://github.com/rhayes777/PyAutoFit
git clone https://github.com/Jammy2211/PyAutoArray
git clone https://github.com/Jammy2211/PyAutoGalaxy
git clone https://github.com/Jammy2211/PyAutoLens

Next, install PyAutoConf via pip:

pip install autoconf

Next, install the source build dependencies of each project via pip:

pip install -r PyAutoFit/requirements.txt
pip install -r PyAutoArray/requirements.txt
pip install -r PyAutoGalaxy/requirements.txt
pip install -r PyAutoLens/requirements.txt

Next, install the optional dependency numba via pip (see this link for a description of numba):

pip install numba

For unit tests to pass you will also need the following optional requirements:

pip install -r PyAutoArray/optional_requirements.txt

If you are using a conda environment, add each source repository as follows:

[NOTE: Certain versions of conda use the command conda develop (without a dash) instead of those shown below.]

conda-develop PyAutoFit
conda-develop PyAutoArray
conda-develop PyAutoGalaxy
conda-develop PyAutoLens

Alternatively, if you are using a Python environment include each source repository in your PYTHONPATH (noting that you must replace the text /path/to with the path to the each directory on your computer):

export PYTHONPATH=$PYTHONPATH:/path/to/PyAutoFit
export PYTHONPATH=$PYTHONPATH:/path/to/PyAutoArray
export PYTHONPATH=$PYTHONPATH:/path/to/PyAutoGalaxy
export PYTHONPATH=$PYTHONPATH:/path/to/PyAutoLens

Finally, check the unit tests run and pass for each project (you may need to install pytest via pip install pytest):

cd /path/to/PyAutoFit
python3 -m pytest
cd ../PyAutoArray
python3 -m pytest
cd ../PyAutoGalaxy
python3 -m pytest
cd ../PyAutoLens
python3 -m pytest