Skip to content

sailorfe/pysweph

 
 

Repository files navigation

pysweph

pypi license: agpl v3

Modern Python bindings for the Swiss Ephemeris, a high-precision astronomical computation library for astrology developed and maintained since 1997.

pysweph continues the work of pyswisseph with updated documentation, bug fixes, and ongoing community maintenance.

Background

In mid-2025, the documentation for pywisseph (https://astrorigin.com/pyswisseph) became inaccessible, and the maintainer has been unresponsive to issues and pull requests. This fork, pysweph, aims to keep the Python interface stable, documented, and installable for users who rely on it.

Versioning

This project follows the versioning scheme: <swe_major>.<swe_minor>.<swe_patch>.<wrapper_increment>

  • The first three numbers match the Swiss Ephemeris C library version, v2.10.03 (2022-09-09).
  • The fourth number increments for Python wrapper changes.

pysweph starts from pyswisseph==2.10.3.2 (2023-06-04). The first release of this fork is 2.10.3.3. If the original maintainer of pyswisseph returns, this project will coordinate or merge changes as appropriate.

Upstream

pysweph links directly to the official Swiss Ephemeris C library maintained by Alois Treindl and Astrodienst.

pyswisseph included the author's auxiliary repositories (swephelp, sqlite3, and related utilities). These have been intentionally removed in pysweph to reduce complexity and depend only on the canonical Swiss Ephemeris source code.

Status

Changes

  • Rebuilt with Sphinx and MyST Markdown, hosted on GitHub Pages with continuous integration via GitHub Actions.
  • Generated API reference directly from pyswisseph.c docstrings with sphinx-autodoc.
  • Includes original tutorials and conceptual guides intended for both astrologers and developers.

C library parity

Warning

These include breaking changes from pyswisseph. The severity of each is documented in more detail in the Migration Guide.

  • 2.10.3.3: Exposed string errors in swe.calc(), swe.calc_pctr(), swe.calc_ut(), and swe.deltat_ex().
  • 2.10.3.4: The swe_houses function family now returns house cusps as a 13 or 37-item tuple where index 0 is empty. This is a breaking change.

Future

  • As of 2026-02-06, the test suite is deprecated due to calc and houses function patches.
  • A CFFI refactor is in progress: cffi-rewrite.

Installation

Install from PyPI: pip install pysweph

Build from source:

git clone https://github.com/sailorfe/pysweph.git
cd pysweph
python3 -m venv .venv
source .venv/bin/activate
pip install .

pysweph retains the same import name from pyswisseph:

import swisseph as swe

The documentation includes a detailed pyswisseph to pysweph Migration Guide for existing projects.

Credits

  • Alois Treindl, creator of the Swiss Ephemeris
  • Stanislas Marquis, author of the original Python bindings (pyswisseph)
  • sailorfe, maintainer of pysweph continuation

License

pysweph is licensed under the GNU Affero General Public License version 3, whose text you can read at LICENSE.

About

community fork of pyswisseph with documentation and upstream parity

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • C 78.7%
  • Python 20.1%
  • Other 1.2%