This is documentation for an old release of SciPy (version 1.7.0). Read this page in the documentation of the latest stable release (version 1.15.1).
Development environment quickstart guide using pip
on Ubuntu Linux¶
This is a high-level overview of what is needed to set up a development
environment. This is only one possible way out of many. This guide assumes
you have a fresh install of Ubuntu Linux 20.04, which only has a python3
executable. We also assume you have already installed git
, cloned
the SciPy repository and initialized/updated git submodules.
Installing the system-level dependencies¶
First, you will also need the compilers for C, C++ and Fortran:
sudo apt install -y gcc g++ gfortran
SciPy also requires BLAS and LAPACK libraries. You can install several variants (ATLAS, OpenBLAS etc), but here we take the simplest option:
sudo apt install -y liblapack-dev
Installing the python-level dependencies¶
Start with installing pip
:
sudo apt install -y python3-pip
All further work should proceed in a virtual environment. Popular options include
the standard library venv
module or a separate
virtualenv
package. There are muliple third-party tutorials on how to
set up a virtual environment, so we cover only briefly these two options
here.
Note
We repeat: all work should happen in a virtual environment. Never use sudo pip
.
Using virtualenv
¶
Install the virtualenvwrapper
package:
python3 -m pip install virtualenvwrapper --user
Edit the .bashrc
file to add some environment variables which are used
internally by the virtualenvwrapper
:
export WORKON_HOME=$HOME/virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
. $HOME/.local/bin/virtualenvwrapper.sh
Here we store the virtualenvs in a virtualenvs
folder in the home directory.
(you might need to create the folder manually).
Now open a new terminal window for the changes to the .bashrc
to take effect.
Create a new virtual environment and activate it:
mkvirtualenv scipy-dev
Your command prompt now lists the name of your new environment, like so
(scipy-dev)$
. This means that the environment is active. If it is not,
activate it manually with:
workon scipy-dev
Note mkvirtualenv
and workon
commands come from the virtualwrapper
package.
Using the standard-library venv
package¶
Install the venv
package:
sudo apt install -y python3-venv
Change the directory to your home folder and create a directory .venvs
there.
Create the virtualenvironment:
python3 -m venv scipy-dev
To activate the environment, use
source $HOME/.venvs/scipy-dev/bin/activate
Your command prompt now lists the name of your new environment, like so
(scipy-dev)$
.
(For the official docs for the venv
package see
https://docs.python.org/3/tutorial/venv.html).
Building SciPy¶
Inside the scipy-dev
environment, install the python-level dependencies:
python -m pip install numpy pytest cython pythran pybind11
Note that when the virtual environment is active, the system-wide names pip3
and python3
are aliased to pip
and python
, respectively.
Now that you have all needed dependencies, navigate to the directory where you cloned the source code into, and build SciPy (this takes a while):
python setup.py build
Optionally, test it:
python runtests.py