From Fedora Project Wiki
A python 3 stack was added to Fedora in Fedora 13, parallel-installable with the "main" Python 2 stack, and it is gradually growing additional RPMs, as more code is ported to Python 3.
Note that /usr/bin/python
is still Python 2.
Porting status
Please keep each of these tables sorted alphabetically by python module name
Python 3 already in Fedora
Python Module | Fedora Python 2 package | Upstream status of Python 3 | Fedora Python 3 package |
---|---|---|---|
blender | Blender 2.5 migrated its embedded version of python from Python 2 to Python 3. | Fedora 15 onwards switched from Blender 2.4 to 2.5, linking against the system Python 3, rather than the system Python 2 | |
bpython | Should work in 0.9.6.2: http://bitbucket.org/bobf/bpython/issue/84/bpython-doesnt-work-with-python-3 ; needs pyparsing | In Fedora 14 onwards as python3-bpython subpackage of bpython (was RHBZ #590107) | |
swig | According to http://www.swig.org/news.php, Python 3 support was added to SWIG in 1.3.37 (released 2009-01-15); generated C code appears to be compilable against both Python 2 and Python 3 | Fedora 11 onwards has had a version of "swig" capable of generating code for both Python major-versions. | |
beaker | python-beaker | In Fedora 14 onwards as python3-beaker, built as a subpackage of python-beaker | |
beautifulsoup4 | python-BeautifulSoup | beautifulsoup4 adds Python 3 support | Fedora 15 onwards has python3-BeautifulSoup, built as a subpackage of python-BeautifulSoup.src.spm, using a copy of the 4.* tarball |
cairo | pycairo | Upstream packages the py3k version as pycairo and the py2 version as py2cairo. There is a need to port from PyCObject to PyCapsule because Python 3.2 does not support PyCObject | In Fedora 15 onwards as python3-cairo) |
chardet | python-chardet | Upstream releasing dual-purpose tarballs | In Fedora 13 onwards as python3-chardet (was RHBZ #583186), the update is now stable. Though not yet in the beta release, it will be in the final one. |
cherrypy | python-cherrypy | Python 3 supported as of CherryPy 3.2 (October 2009), upstream releasing separate tarballs for python 3 | In Fedora 13 onwards as python3-cherrypy (was RHBZ #579593), though F-13 build is only available as an update. |
coverage | python-coverage | Upstream releasing dual-purpose tarballs | In Fedora 13 onwards as python3-coverage subpackage of python-coverage (was RHBZ #536948) |
Crypto | python-crypto | PyCrypto supports Python 3 as of 2.4 | In Fedora 17 onwards as python3-crypto subpackage of python-crypto (was RHBZ #748529) |
decorator | python-decorator | Upstream reports that 3.1.2 ought to work, by running 2to3 on the module decorator.py | In Fedora 14 onwards as python3-decorator subpackage of python-decorator |
deltarpm | deltarpm | In Fedora 13 onwards (the "deltarpm" build emits both "python-deltarpm" and "python3-deltarpm" subpackages) | |
docutils | python-docutils | Website says: "From version 0.6 Docutils is compatible with Python 3, but requires 2to3." Note: Soft dependency on python-imaging which is not yet ported. We can make python3-docutils not use imaging with reduced functionality compared to the python2 version | In Fedora 14 onwards as python3-docutils subpackage of python-docutils (was RHBZ #579567) |
enchant | python-enchant | As of 2010-12-14 1.6.5 onwards should work with Python 3 | In Fedora 17 onwards as python3-enchant subpackage of python-enchant (was RHBZ #745237) |
gcc | gcc-python-plugin supports both Python 2 and Python 3 from one tarball, using "six" | In Fedora 16 onwards as gcc-python3-plugin and gcc-python3-debug-plugin subpackages of gcc-python-plugin (was RHBZ #725570) | |
jinja2 | python-jinja2 | Version 2.3 introduced 'experimental' Python 3 support. | In Fedora 14 onwards as python3-jinja2 subpackage of python-jinja2 (was RHBZ #537268) |
lxml | python-lxml | Upstream releasing dual-purpose tarballs | In Fedora 13 onwards as python3-lxml subpackage of python-lxml (was RHBZ #533290) |
mako | python-mako | From version 0.3, mako supports python3 | In Fedora 14 onwards as python3-mako subpackage of python-mako (was RHBZ #585036) |
minimock | python-minimock | Asked upstream they will release dual-purpose tarballs | In Fedora 13 onwards as python3-minimock subpackage of python-minimock |
mpich2, openmpi | mpi4py | python3-mpi4py-{openmpi,mpich2} in Fedora 13 onwards, built as a subpackage of mpi4py. | |
numpy | numpy | python3-{numpy,f2py} in Fedora 15 onwards, built as a subpackage of numpy. | |
paste | python-paste | In Fedora 15 onwards as python3-paste subpackage of python-paste | |
ply | python-ply | 2 and 3 from same tarball from PLY-3.0 onwards; README states "You should not convert PLY using 2to3 -- it is not necessary and may in fact break the implementation." | python3-ply in Fedora 13 onwards, built as a subpackage of python-ply |
postgresql | py-postgresql | In Fedora 13 onwards as python3-postgresql (was RHBZ #579280), though F-13 build is only available as an update | |
psutil | python-psutil | In Fedora 13 onwards as a python3-psutil subpackage | |
psycopg2 | python-psycopg2 | As of 2011-02-06, Psycopg 2.4 beta1 works with Python 3 | In Fedora 16 onwards, as python3-psycopg2 and python3-psycopg2-debug subpackages of python-psycopg2 (was RHBZ #676748) |
pygments | python-pygments | Upstream reports that "Pygments is already ported to Python 3. The same source release can be used for 2.x and 3.x installs" | In Fedora 14 onwards as a python3-pygments subpackage of python-pygments (was RHBZ #537244) |
gobject | pygobject2 | I'm working on the py3 port upstream. Note this replaces the need for modules such as PyGTK which will not be ported | In Fedora 15 onwards as python3-gobject built as as a subpackage of pygobject2 |
pyke | pyke | In Fedora 13 onwards as a python3-pyke subpackage of pyke | |
PyQt4 | PyQt4 | In Fedora 14 onwards as python3-PyQt4 and python3-PyQt4-devel subpackages of PyQt4 (was RHBZ #586196) | |
selinux | libselinux-python | Generated by SWIG during build of libselinux | In Fedora 14 onwards as libselinux-python3 subpackage of libselinux (wasRHBZ #582006) |
semanage | libsemanage-python | Generated by SWIG during build of libsemanage | In Fedora 14 onwards as libsemanage-python3 subpackage of libsemanage (was RHBZ #582007) |
setuptools | python-setuptools | In Fedora 13 onwards as a python3-setuptools subpackage (internally we've switched to the "Distribute" fork) | |
simplegeneric | python-simplegeneric | In Fedora 17 onwards as a python3-simplegeneric subpackage of python-simplegeneric; also added in a Fedora 16 update (was RHBZ #785056) | |
sip | sip | added (single tarball) | In Fedora 14 onwards as python3-sip and python3-sip-devel subpackages of "sip" (was RHBZ #545124) |
six | python-six | In Fedora 16 onwards as python3-six (was RHBZ #690613) | |
smbpasswd | python-smbpasswd | Create own package for p3k; sent patch to upstream | In Fedora 13 onwards as python3-smbpasswd subpackage (was RHBZ #560456) |
sqlalchemy | python-sqlalchemy | 0.6beta1 has py3k support from a single tarball. | Packaged for F-14. Needs nose3 for running unittests of python3-sqlalchemy. Due to incompatible API, decided not to push back to F-13. |
Python 3 code not yet in Fedora
Python Module | Fedora Python 2 package | Upstream status of Python 3 | Fedora Python 3 package |
---|---|---|---|
mod_wsgi | mod_wsgi version 3.0 and later supports Python 3.1 and later: http://code.google.com/p/modwsgi/wiki/SupportForPython3X http://code.google.com/p/modwsgi/wiki/ChangesInVersion0300 | ||
babel | python-babel | Patch to .spec to emit python2 and python 3 from one build needs work: RHBZ #537266 | |
IPy | python-IPy | 0.73 works with Python 3 | |
scipy | scipy | SVN trunk 6848 works with python 3 | |
PyKDE4 | PyKDE4 (from the kdebindings srpm) | RHBZ #587005 | |
rpm | rpm-python (subpackage of "rpm") | dmalcolm and pmatilai ported the C extension for librpm to work with both python 2 and 3; released as rpm 4.8.0 | Needs packaging work: see RHBZ #531543 |
To be categorized
Python Module | Fedora Python 2 package | Upstream status of Python 3 | Fedora Python 3 package |
---|---|---|---|
gedit | |||
gdb | |||
luma | Depend on other packages, which have to migrate to py3k | ||
bugzilla | python-bugzilla | ||
devtools | python-tg-devtools | ||
genshi | python-genshi | experimental py3k branch announced http://groups.google.com/group/genshi/browse_thread/thread/abe214a973b43c84 | |
enum | python-enum | ||
fedora | python-fedora | ||
migrate | python-migrate | ||
nose | python-nose | This is the current nose3 branch on bitbucket. Googlecode branch is out-of-date. This upstream ticket, indicates the trunk will move to python3 only, and python2 will be in maintenance mode but upstream has said that the current py2 branch is being worked on by others and the py3 branch is lagging behind. | |
paste.deploy | python-paste-deploy | ||
paste.script | python-paste-script | ||
py | python-py | 1.3.0 has "...improved compatibility with Python3..." | |
pyparsing | pyparsing | Python 3 support was added in 1.5.2 as a pyparsing_py3.py file | |
repoze.tm | python-repoze-tm2 | ||
repoze.what | python-repoze-what | ||
repoze.what.plugins.sql | python-repoze-what-plugins-sql | ||
repoze.what.plugins.pylonshq | python-repoze-what-pylons | ||
repoze.what.plugins.quickstart | python-repoze-what-quickstart | ||
repoze.who | python-repoze-who | ||
repoze.who.plugins.friendlyform | python-repoze-who-friendlyform | ||
repoze.who.plugins.sa | python-repoze-who-plugins-sa | ||
repoze.who.plugins.testutil | python-repoze-who-testutil | ||
routes | python-routes | ||
simplejson | python-simplejson | ||
sprox | python-sprox | ||
tg | TurboGears2 | ||
tgext.admin | python-tgext-admin | ||
tgext.crud | python-tgext-crud | ||
tw | python-toscawidgets | ||
turbojson | python-turbojson | ||
turbokid | python-turbokid | ||
tw.forms | python-tw-forms | ||
virtualenv | python-virtualenv | A forked version for Python 3 is available, but I'm not sure how "official" it is | |
weberror | python-weberror | ||
webflash | python-webflash | ||
webhelpers | python-webhelpers | ||
webob | python-webob | ||
webtest | python-webtest | ||
zope.sqlalchemy | python-zope-sqlalchemy |
Python modules that appear to not yet be ready for Python 3 packaging
Please let us know if this information is out-of-date.
FIXME: add note about if a python3 version should be packaged
Python Module | Fedora Python 2 package | Upstream status of Python 3 | Fedora Python 3 package |
---|---|---|---|
augeas | python-augeas | dmalcolm has experimented with porting this to python 3 | |
Cheetah | python-cheetah | As of 2010-02-02, upstream site reports that Python 3.xx support will be in Cheetah v3.0, but that it is "still in planning" | |
cracklib | cracklib-python | Looking at cracklib-2.8.16, looks like the module needs some work to port (e.g. module initialization), and uses automake so may need work to build multiple times | |
django | Django | http://wiki.python.org/moin/PortingDjangoTo3k - there's an experimental branch in bitbucket, but as of 2010-04-09 it doesn't appear to have "official" releases | |
krbV | python-krbV | Implemented in C, would need porting (with 2to3c ?) | |
ldap | python-ldap | Porting discussed on upstream mailing list on 2009-09-03 but appears not to be done yet | |
libvirt | libvirt-python | Porting has not yet started | |
libxml2 | libxml2-python | Porting doesn't seem to have started | |
MySQLdb | MySQL-python | As of 2011-07-25, http://pypi.python.org/pypi/MySQL-python/ said " Python-3.0 will be supported in a future release." | |
nss | python-nss | Looks like we need to port it, and would be non-trivial | |
parted | pyparted | Looks like we need to port it | |
PIL | python-imaging | As of 2010-01-28, upstream website says "The current free version is PIL 1.1.7. This release supports Python 1.5.2 and newer, including 2.5 and 2.6. A version of 1.1.7 for 3.X will be released later." A 2010-02-21 mailing list post suggests that the port is stalled | |
pylons | python-pylons | As of 2010-04-09, it's on the future roadmap for 1.1; see also http://pylonshq.com/project/pylonshq/ticket/425 | |
sphinx | python-sphinx | Upstream added Python 3.x support to trunk on 2010-07-28 | |
wx | wxPython | As of 2010-02-03, appears not to be ported yet; see http://stackoverflow.com/questions/720806/wxpython-for-python-3-0 | |
xdg | pyxdg | Appears to not yet be ported; see RHBZ #555620 |
Python 2 modules that are not going to be ported to Python 3
Python Module | Fedora Python 2 package | Notes |
---|---|---|
mod_python | Upstream mod_python has effectively stopped since February 2007. ..."You also will never see a version of mod_python for Python 3.X as that is going to require a radical rewrite"... with various suggestions including moving to mod_wsgi | |
BeautifulSoup | python-BeautifulSoup | 3.1.0 adds Python 3 support, but reportedly doesn't work as well as 3.0.8 (See http://www.crummy.com/software/BeautifulSoup/3.1-problems.html http://groups.google.com/group/beautifulsoup/browse_thread/thread/f24882cc17a0625e and http://stackoverflow.com/questions/149585/beautifulsoups-python-3-compatibility ). However, beautifulsoup4 (see above) adds Python 3 support |
dbus | dbus-python | |
gtk | pygtk2 | The old C-based bindings are not going to be ported. Instead, the "Gtk" module can be accessed from pygobject introspection with upstream trying to make it easy to transition from PyGTK |