Skip to main content

Community fork of Pyswisseph, a Python extension to the Swiss Ephemeris

Project description

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](https://github.com/astrorigin/swephelp), [sqlite3](https://github.com/astrorigin/sqlite3), and related utilities). These have been intentionally removed in pysweph to reduce complexity and depend only on the canonical Swiss Ephemeris source code.

Changes in pysweph

  • Documentation:
    • 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:
    • 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.

Status

  • 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

pysweph is available directly from PyPI.

uv pip install pysweph
# or
pip install pysweph

pysweph is a drop-in replacement for pyswisseph with the same import name:

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysweph-2.10.3.4-cp313-cp313-manylinux_2_34_x86_64.whl (782.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

File details

Details for the file pysweph-2.10.3.4-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pysweph-2.10.3.4-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5cd2e7a6306f36d4302d04fd55a2fc8652bb0444108c145edd53ec55e1c33aa1
MD5 d735f1f5b75fcfead605e57ff984795a
BLAKE2b-256 d14944ec76c4d23f542f944ef8df7d8ada2adc845e7b701a94de6ef117966604

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page