Getting started


poliastro requires the following Python packages:

  • NumPy, for basic numerical routines
  • Astropy, for physical units and time handling
  • numba (optional), for accelerating the code
  • jplephem, for the planetary ephemerides using SPICE kernels
  • matplotlib, for orbit plotting
  • scipy, for root finding and numerical propagation
  • pytest, for running the tests from the package

poliastro is usually tested on Linux, Windows and OS X on Python 3.5 and 3.6 against latest NumPy.


The easiest and fastest way to get the package up and running is to install poliastro using conda:

$ conda install poliastro --channel conda-forge


We encourage users to use conda and the conda-forge packages for convenience, especially when developing on Windows.

If the installation fails for any reason, please open an issue in the issue tracker.

Alternative installation methods

If you don’t want to use conda you can install poliastro from PyPI using pip:

$ pip install numpy  # Run this one first!
$ pip install poliastro


At the time of writing, this installation process requires a development version of SciPy to succeed on Windows. To install it, please check out this link:

The complete command would be:

$ pip install --pre poliastro -f

If these installation steps fail for you, please consider using conda.

Finally, you can also install the latest development version of poliastro directly from GitHub:

$ pip install

This is useful if there is some feature that you want to try, but we did not release it yet as a stable version. Although you might find some unpolished details, these development installations should work without problems. If you find any, please open an issue in the issue tracker.


It is recommended that you never ever use sudo with distutils, pip, setuptools and friends in Linux because you might seriously break your system [1][2][3][4]. Options are per user directories, virtualenv or local installations.


If installed correctly, the tests can be run using pytest:

$ python -c "import poliastro.testing; poliastro.testing.test()"
Running unit tests for poliastro

If for some reason any test fails, please report it in the issue tracker.