A Survey on Python 3.x Dependencies

By Draza Miloshevich and Nason Waniska

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 tick mark Python 3.x As of version 0.14. Source 1
Docutils tick mark 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 tick mark 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 1
Source 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 tick mark Python 3.x As of version 0.17. Source 1
Networkx tick mark Python 2.6 through Python 3.x As of version 1.6. Source 1
NumPy tick mark Python 2.5 through Python 3.x As of version 1.5.0. Source 1
Pexpect tick mark 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 tick mark Python 3.x As of PyCrypto 2.4. Source 1
Pynac Python 2.6 As of version 0.2.3.p0. Source 1
Python tick mark 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 tick mark Python 2.7 As of version 2.2.5, can be compatible with Python 3.x with a few minor changes. Source 1
Scipy tick mark Python 3.x As of version 0.9.0. Source 1
SCons tick mark 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

1tick mark indicates 3.x compatible