passagemath: General purpose mathematical software system in Python, a pip-installable modularized fork of SageMath
passagemath is open source mathematical software in Python, released under the GNU General Public Licence GPLv2+.
It is a fork of SageMath, which has been developed 2005-2025 under the motto "Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, and MATLAB".
The passagemath fork was created in October 2024 with the following goals:
- providing modularized installation with pip, thus completing a major project started in 2020 in the Sage codebase,
- establishing first-class membership in the scientific Python ecosystem,
- giving clear attribution of upstream projects,
- providing independently usable Python interfaces to upstream libraries,
- providing platform portability and integration testing services to upstream projects,
- inviting collaborations with upstream projects,
- building a professional, respectful, inclusive community,
- developing a port to Pyodide for serverless deployment with Javascript,
- developing a native Windows port.
Full documentation is available online.
Join passagemath.discourse.group for help and discussions.
Join the BlueSky platform and follow @passagemath.org to receive announcements.
People all around the globe have contributed to the development of SageMath since 2005, and hence of passagemath.
See CONTRIBUTING.md for how you can contribute.
passagemath is a major integrating force in the mathematical software landscape.
Invitations to the passagemath GitHub organization: If you received an invitation to join the organization, note that we send out invitations to the organization:
- to contributors to the upstream SageMath project, in particular when we merge their nontrivial contributions that were accepted into SageMath into the passagemath codebase, as a courtesy,
- to key stakeholders of upstream projects that passagemath depends on, as a gesture of appreciation and to extend an invitation to collaborate,
- to authors and contributors of downstream packages that depend on SageMath / passagemath, as an invitation to the passagemath ecosystem,
- to downstream packagers.
Becoming a member of the passagemath GitHub organization is free and does not imply any obligations other than to adhere to the organization's Code of Conduct.
The passagemath project is a major integrating force in the mathematical software landscape. There are many ways to contribute: Follow the #issue numbers to see how you can help; for example, by surveying software, building or extending interfaces, or contributing to distribution packaging.
passagemath attempts to support all major Linux distributions and recent versions of macOS. Use on Windows currently requires the use of Windows Subsystem for Linux or virtualization.
Complete sets of binary wheels are provided on PyPI for Python versions 3.9.x-3.13.x for Linux and macOS, both for the x86_64 and ARM architectures.
Unless you need to install passagemath into a specific existing environment, we recommend
to create and activate a fresh virtual environment over a suitable Python (3.9.x-3.13.x),
for example ~/passagemath-venv/
:
$ python3 --version
Python 3.12.7
$ python3 -m venv ~/passagemath-venv
$ source ~/passagemath-venv/bin/activate
For Python 3.13.x on any platform, and for any Python version on the Linux aarch64 (ARM)
and macOS arm64 (Apple Silicon M1/M2/M3/M4) platforms,
some third-party packages are still missing wheels.
Build these wheels from source using
(passagemath-venv) $ export SAGE_CONF_TARGETS="fpylll gmpy2 lrcalc_python memory_allocator pplpy primecountpy"
(passagemath-venv) $ pip install --force-reinstall -v passagemath-conf
(passagemath-venv) $ export PIP_FIND_LINKS=$(sage-config SAGE_SPKG_WHEELS)
(passagemath-venv) $ export PIP_PREFER_BINARY=1
(passagemath-venv) $ pip install -v --prefer-binary passagemath-standard
Start the Sage REPL:
(passagemath-venv) $ sage
Alternatively, use a Python or IPython REPL, or use a Python or Sage kernel in Jupyter.