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 uses the motto "Creating a Free Passage Between the Scientific Python Ecosystem and Mathematical Software Communities." It was created in October 2024 with the following goals:
- providing modularized installation with pip (this major project was started in May 2020 in the Sage codebase and completed in May 2025 in passagemath),
- establishing first-class membership in the scientific Python ecosystem,
- giving clear attribution of upstream projects,
- providing independently usable Python interfaces to upstream libraries,
- offering platform portability and integration testing services to upstream projects,
- inviting collaborations with upstream projects,
- building a professional, respectful, inclusive community,
- empowering Sage users to participate in the scientific Python ecosystem by publishing packages,
- developing a port to Pyodide (WebAssembly) for serverless deployment with Javascript,
- developing a native Windows port (passagemath 10.6.1 publishes the first pip-installable packages for native Windows on x86_64).
Full documentation is available online.
Join passagemath.discourse.group for help and discussions.
Subscribe to https://groups.google.com/g/sage-packaging, or 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.
If you received an invitation to join the organization, note that we send out invitations to the organization:
- to key stakeholders of upstream projects that passagemath depends on, as a gesture of appreciation and to extend an invitation to collaborate,
- 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 authors and contributors of downstream packages that depend on SageMath / passagemath, as an invitation to the passagemath ecosystem,
- to downstream packagers.
As of 2025-07-11, the passagemath GitHub organization has 111 members. 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. Membership is private by default, i.e., only shown to other members of the organization.
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 of the full functionality 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. Binary wheels for native Windows (x86_64) are gradually made available in the passagemath 10.6.x series.
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 the Linux aarch64 (ARM) platform,
some third-party packages are still missing wheels.
Build these wheels from source using
(passagemath-venv) $ export SAGE_CONF_TARGETS="gmpy2 memory_allocator"
(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 the Python kernel or the provided Sage kernel in Jupyter.
The passagemath/passagemath repository README provides detailed instructions:
- Using the modularized distributions
- Building from source
- Traditional installation from source as Sage-the-Distribution
The passagemath GitHub organization includes the following repositories:
Repository | Contents |
---|---|
upstream-... | Repositories (forks) of upstream packages (dependencies of the Sage library) |
passagemath | Main passagemath repository: Sage library (src), modularized pip-installable packages (pkgs), Sage distribution (build) |
passagemath-... | Repositories of separately maintained pip-installable passagemath components: passagemath-coin-or-cbc, passagemath-cplex, passagemath-gurobi, passagemath-ppl, passagemath-primesieve-primecount |
passagemath-pkg-... | Repositories (forks) of downstream packages (depending on the Sage library via modularized pip-installable packages) |
downstream-... | Repositories (forks) of downstream packaging of passagemath in software distributions |