From Fedora Project Wiki

Revision as of 05:26, 26 July 2012 by Ncoghlan (talk | contribs) (To be categorized)

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 ; needs pyparsing In Fedora 14 onwards as python3-bpython subpackage of bpython (was RHBZ #590107)
swig According to, 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.
amqplib In Fedora as python3-amqplib subpackage of python-amqplib
ansi2html In Fedora as python3-ansi2html subpackage of python-ansi2html
anyjson In Fedora as python3-anyjson subpackage of python-anyjson
asciitable In Fedora as python3-asciitable subpackage of python-asciitable
atpy ATpy In Fedora 13 onwards as python3-ATpy, built as a subpackage of ATpy
auth In Fedora as python3-auth.credential subpackage of python-auth-credential
babel python-babel python3-babel built as a subpackage of babel (Patch to .spec to emit python2 and python 3 from one build was RHBZ #537266)
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.rpm, using a copy of the 4.* tarball
bs4 In Fedora as python3-beautifulsoup4 subpackage of python-beautifulsoup4
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.
cmd2 In Fedora as python3-cmd2 subpackage of python-cmd2
cobbler koan In Fedora as subpackages cobbler cobbler-web koan of cobbler
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)
cvxopt In Fedora as python3-cvxopt subpackage of python-cvxopt
dateutil In Fedora as python3-dateutil package
decorator python-decorator Upstream reports that 3.1.2 ought to work, by running 2to3 on the module 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)
dirq In Fedora as python3-dirq subpackage of python-dirq
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)
easygui In Fedora as python3-easygui subpackage of python-easygui
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)
execnet In Fedora as python3-execnet subpackage of python-execnet
feedparser In Fedora as python3-feedparser subpackage of python-feedparser
flexmock In Fedora as python3-flexmock subpackage of python-flexmock
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)
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
gobject pygobject3 In Fedora as python3-gobject built as as a subpackage of pygobject3
html5lib In Fedora as python3-html5lib subpackage of python-html5lib
httplib2 In Fedora as python3-httplib2 subpackage of python-httplib2
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)
lcgdm In Fedora as lfc-python3 and dpm-python3 subpackages of lcgdm
In Fedora as loook
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)
mysql-connector-python In Fedora as mysql-connector-python3subpackage of mysql-connector-python
manuel In Fedora as python3-manuel subpackage of python-manuel
markdown In Fedora as python3-markdown subpackage of python-markdown
markdown2 In Fedora as python3-markdown2 subpackage of python-markdown2
markupsafe In Fedora as python3-markupsafe subpackage of python-markupsafe
messaging In Fedora as python3-messaging subpackage of python-messaging
mglob In Fedora as python3-mglob subpackage of python-mglob
minimock python-minimock Asked upstream they will release dual-purpose tarballs In Fedora 13 onwards as python3-minimock subpackage of python-minimock
mock In Fedora as python3-mock subpackage of python-mock
mpich2, openmpi mpi4py python3-mpi4py-{openmpi,mpich2} in Fedora 13 onwards, built as a subpackage of mpi4py.
In Fedora as nfoview
In Fedora as nordugrid-arc-python3 subpackage of nordugrid-arc
networkx In Fedora as python3-networkx subpackage of python-networkx
nose In Fedora as python3-nose subpackage of python-nose
numpy numpy python3-{numpy,f2py} in Fedora 15 onwards, built as a subpackage of numpy.
pbs In Fedora as python3-pbs subpackage of python-pbs
pip In Fedora as python3-pip subpackage of python-pip
pkgwat In Fedora as python3-python-pkgwat-api subpackage of python-pkgwat-api
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)
pycmd In Fedora as python3-pycmd subpackage of pycmd
pyfits pyfits In Fedora as a python3-pyfits subpackage of pyfits
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)
pyinotify In Fedora as python3-inotify subpackage of python-inotify
pyke pyke In Fedora 13 onwards as a python3-pyke subpackage of pyke
pyp2rpm pyp2rpm In Fedora as a python3-pyp2rpm subpackage of pyp2rpm
pyparsing pyparsing Python 3 support was added in 1.5.2 as a file In Fedora as python3-parsing subpackage of pyparsing
PyQt4 PyQt4 In Fedora 14 onwards as python3-PyQt4 and python3-PyQt4-devel subpackages of PyQt4 (was RHBZ #586196)
Pyro4 In Fedora as python3-pyro subpackage of python-pyro
pyshp pyshp In Fedora as a python3-pyshp subpackage of pyshp
pytest In Fedora as python3-pytest subpackage of pytest
requests In Fedora as python3-requests subpackage of python-requests
RestAuthCommon In Fedora as python3-restauth-common subpackage of python-restauth-common
revisor In Fedora as revisor-cli subpackage of revisor
scipy scipy SVN trunk 6848 works with python 3 In Fedora as python3-scipy subpackage of scipy
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)
setproctitle In Fedora as python3-setproctitle subpackage of python-setproctitle
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)
sleekxmpp In Fedora as python3-sleekxmpp subpackage of python-sleekxmpp
smbc In Fedora as python3-smbc subpackage of python-smbc
smbpasswd python-smbpasswd Create own package for p3k; sent patch to upstream In Fedora 13 onwards as python3-smbpasswd subpackage (was RHBZ #560456)
sphinx python-sphinx Upstream added Python 3.x support to trunk on 2010-07-28 In Fedora as python3-sphinx subpackage of python-sphinx
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.
stomp In Fedora as python3-stomppy subpackage of stomppy
straight In Fedora as python3-straight-plugin subpackage of python-straight-plugin
tempita In Fedora as python3-tempita subpackage of python-tempita
tornado In Fedora as python3-tornado subpackage of python-tornado
urwid In Fedora as python3-urwid subpackage of python-urwid
yaml PyYAML In Fedora as python3-PyYAML subpackage of PyYAML
zmq In Fedora as subpackages python3-zmq python3-zmq-tests of python-zmq
zope.event In Fedora as python3-zope-event subpackage of python-zope-event
zope.fixers In Fedora as python3-zope-fixers src.rpm

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:
IPy python-IPy 0.73 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
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
enum python-enum
fedora python-fedora
migrate python-migrate
paste.deploy python-paste-deploy
paste.script python-paste-script
py python-py 1.3.0 has "...improved compatibility with Python3..." 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 python-repoze-who-plugins-sa
repoze.who.plugins.testutil python-repoze-who-testutil
routes python-routes
simplejson python-simplejson All versions of Python 3 include the json module in the standard library
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. Python 3.3 includes the "venv" module in the standard library (see PEP 405)
weberror python-weberror
webflash python-webflash
webhelpers python-webhelpers
webob python-webob WebOb 1.2+ supports Python 3.2+
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 - 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, 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
paste python-paste In Fedora 15 onwards a python3-paste subpackage was added to python-paste, but it didn't actually work (upstream hadn't ported to python3), so this has been blocked as of Fedora 17 onwards
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
wx wxPython As of 2010-02-03, appears not to be ported yet; see
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 and ). However, beautifulsoup4 (see above) adds Python 3 support
dbus dbus-python rhbz 538616 python 3 requires using gdbus through introspection.
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