This project was individually researched, but our results agreed so we're choosing to present the results together.
SAGE is currently based on Python 2.x, with the goal of progressing to Python 3.x as soon as possible. In order to do so, each of the Python-based open-source packages that SAGE uses must first be compatible with Python 3.x. The following table lists the compatibility of each of the Python-based packages as of now. Exactly half of these packages are compatible with Python 3.x. SAGE still has a significant amount to go before the transformation can be put into effect.
Software Package | Compatibility1 | Notes | Evidence |
---|---|---|---|
Cython | Python 3.x | As of version 0.14. | Source 1 |
Docutils | Python 3.x | Potentially subtle issues, as explained in the source under 'Python 3 peculiarities'. | Source 1 |
gdmodule | Python 2.x | As of version 1.3. | Source 1 |
IPython | As of version 0.12, ipython can be installed on Python 3.x | As of version 0.12. | Source 1 Source 2 |
matplotlib | Python 2.4 through Python 2.7 | As of version 1.1.0. | Source 1Source 2 |
Mercurial | Python 2.4 through Python 2.7 | As of version 2.1.1, no plans to port Mercurial to Python 3 in the near future. | Source 1 Source 2 |
MoinMoin | Python 2.6 most recommended | As of version 1.9.4, 2.7 is not tested much and it’s not compatible with Python 3.x. | Source 1 |
mpmath | Python 3.x | As of version 0.17. | Source 1 |
Networkx | Python 2.6 through Python 3.x | As of version 1.6. | Source 1 |
NumPy | Python 2.5 through Python 3.x | As of version 1.5.0. | Source 1 |
Pexpect | As of version 2.5.1, compatible with Python 3.x | As of version 2.5.1. | Source 1 |
PIL | Python 1.5.2 through Python 2.7 | As of version 1.1.6. | Source 1 Source 2 |
PolyBoRi | Python 2.5 | As of version 0.8, depreciated for 2.4, intended for 2.5. | Source 1 |
PyCrypto | Python 3.x | As of PyCrypto 2.4. | Source 1 |
Pynac | Python 2.6 | As of version 0.2.3.p0. | Source 1 |
Python | Python 3.x | Source 1 | |
python-gnutls | Python 2.x | As of version 1.2.4, claims to work with 2.4 or newer, but upon installing with Python 3, completely fails. | INSTALL document downloaded from here |
RPy | Python 2.x | RPy uses Python 2.x, but RPy2 is compatible with Python version 2.5 or greater. Python 3.x will install, but at the time of writing still has a couple minor issues. | Source 1 |
SageTeX | Python 2.7 | As of version 2.2.5, can be compatible with Python 3.x with a few minor changes. | Source 1 |
Scipy | Python 3.x | As of version 0.9.0. | Source 1 |
SCons | Python 2.4 or newer | As of version 2.1.0. | Source 1 |
setuptools | Python 2.7 | As of version 0.6c11. | Source 1 |
SymPy | Python 2.7 | Current version is 0.7.1. Version 0.7.2 is Python 3.x compatible and will be released in 2012. | Source 1 |
Twisted | Python 2.7 | As of version 12.0.0, 47% of Twisted is compatible with Python 3.x. | Source 1 |
1 indicates 3.x compatible