(NOTE: if high performance of the installed package is important, e.g. when installing in computing centers or for performing benchmarks, please be sure to read the Generating native binaries section below.)
Healpy depends on the HEALPix C++ and cfitsio C libraries. Source code for both is included with Healpy and is built automatically, so you do not need to install them yourself. Only Linux and macOS are supported, Windows only through the "Windows Subsystem for Linux" (see below).
Conda Forge provides a conda channel with a pre-compiled version of
healpy
for linux 64bit and MAC OS X platforms, you can install it in
Anaconda with:
conda config --add channels conda-forge conda install healpy
There have also been reports of specific installation issues under Mac OS
Catalina 10.15.5 with conda install as the solver appears to run without
finding the required packages. This is a general issue with a number of
packages, and not limited to healpy
. The most straightforward solution
(after adding conda-forge to the channel list) is for the user to decide which
packages they wish to install alongside healpy
and then create a new
environment installing healpy
alongside said packages. For instance if one
wishes to install healpy
alongside Spyder and My_Package into newly created
environment env_healpy, the command will be:
conda create --name env_healpy python=3.8 healpy spyder my_package
You can install Healpy from the Python Package Index using pip. For most common architectures and platforms (Linux x86-64, Linux i686, and macOS x86-64), Pip will download and install a pre-built binary. For other platforms, it will automatically try to build healpy from source.
Note that there are not yet native prebuilt binaries for Apple Silicon Macs.
To install the latest version of healpy
with pip, simply run:
pip install --user healpy
If you have installed with pip
, you can keep your installation up to date
by upgrading from time to time:
pip install --user --upgrade healpy
On platforms for which we do not yet have prebuilt binaries in the Python Package Index, pip build healpy from source. You can force pip to build from source by running:
pip install --no-binary healpy healpy
Some common issues that you might encounter when building from source:
libssl-dev
(Debian) oropenssl-dev
(CentOS) is required to buildcfitsio
from source.On Linux with newer compilers many users reported compilation errors like
configure: error: cannot run C compiled programs
. The solution is to specifiy the flags for the C and CXX compiler:CC=gcc CXX=g++ CFLAGS='-fPIC' CXXFLAGS='-fPIC' pip install --user healpy
Debian users may install Healpy for the Debian-supplied system Python interpreter by running:
sudo apt-get install python3-healpy
MacPorts users on macOS may install Healpy for the MacPorts-supplied Python interpreter by running:
sudo port install py38-healpy
Currently most people report they cannot install healpy on Mac OS either via pip or building from source, due to the impossibility of compiling the HEALPix based extension. The best alternatives are conda, binary installation with pip, or MacPorts.
If you are using a Mac and have the MacPorts package manager, it's even easer to install Healpy with:
sudo port install py36-healpy
Binary apt-get style packages are also available in the development versions of Debian (sid) and Ubuntu.
Healpy is also available in the Python Package Index (PyPI). You can download it with:
curl -O https://pypi.python.org/packages/source/h/healpy/healpy-1.14.0.tar.gz
and build it with:
tar -xzf healpy-*.tar.gz cd healpy-* pip install .
If everything goes fine, you can test it:
python >>> import matplotlib.pyplot as plt >>> import numpy as np >>> import healpy as hp >>> hp.mollview(np.arange(12)) >>> plt.show()
or run the test suite with:
cd healpy-* && pytest
Healpy uses pkg-config to detect the presence of the Healpix and cfitsio libraries. pkg-config is available on most systems. If you do not have pkg-config installed, then Healpy will download and use (but not install) a Python clone called pykg-config.
If you want to provide your own external builds of Healpix and cfitsio, then download the following packages:
- pkg-config
- HEALPix autotools-style C++ package
- cfitsio
If you are going to install the packages in a nonstandard location (say,
--prefix=/path/to/local
), then you should set the environment variable
PKG_CONFIG_PATH=/path/to/local/lib/pkgconfig
when building. No other
environment variable settings are necessary, and you do not need to set
PKG_CONFIG_PATH
to use Healpy after you have built it.
Then, unpack each of the above packages and build them with the usual
configure; make; make install
recipe.
Restart your computer, and follow the instructions (which appear before windows starts) to enter BIOS. Usually this means pressing DEL or F2 just after powering on. Find the option to enable virtualization (exact name will depend on your system, can google your machine brand name + "enable virtualization" for instructions)
Follow these instructions to install Windows Subsystem for Linux: https://docs.microsoft.com/en-us/windows/wsl/install-win10 Following the instructions for WSL version 2, and choosing Ubuntu from the store.
Restart machine
Open the newly installed Ubuntu application from the Start menu and follow the setup instructions.
When they are complete, run these commands:
sudo apt-get update sudo apt-get upgrade sudo apt-get install python3 python3-pip
Quit ubuntu, restart it, and run:
pip3 install numpy jupyter matplotlib healpy ipython jupyter
Quit ubuntu again, restart it, and run:
ipython notebook --no-browser
Copy and paste the line starting with
http://localhost:8888/?token=
into your normal Windows web browser.
Developers building from a snapshot of the github repository need:
autoconf
andlibtool
(in Debian or Ubuntu:sudo apt-get install autoconf automake libtool pkg-config
)libssl-dev
(Debian) oropenssl-dev
(CentOS) is required to buildcfitsio
from source- cython > 0.16
- run
git submodule init
andgit submodule update
to get the bundled HEALPix sources
the best way to install healpy if you plan to develop is to build the C++ extensions in place with:
python setup.py build_ext --inplace
then add the healpy
repository folder to your PYTHONPATH
(e.g. if you
cloned this repository to $REPOS
such that $REPOS/healpy/INSTALL.rst
exists, then add $REPOS/healpy
to your PYTHONPATH
).
In case of compilation errors, see the note above in the pip
section.
Using pre-compiled wheels is typically the easiest and quickest way
to install healpy
on a system. However, the performance of the installed
package may not be optimal, since the wheel has to work on all CPUs of a given
architecture (e.g. x86_64) and will therefore probably not use all features
present in your local CPU. A healpy
installation which is custom-tailored
for a specific target CPU may be two or three times faster for some operations
(most notably alm2map*
and map2alm*
calls).
To achieve target-specific compilation, healpy
must be installed from source
and the -march=native
flag has to be passed to the compilers.
While details may vary slightly depending on the target platform,
the installation command will have this basic form:
CC=gcc CXX=g++ CFLAGS="-fPIC -O3 -march=native" CXXFLAGS="-fPIC -O3 -march=native" pip3 install --user --no-binary healpy healpy
When you run "python setup.py", temporary build products are placed in the
"build" directory. If you want to clean out and remove the build
directory,
then run:
python setup.py clean --all