From Fedora Project Wiki

(→‎Porting status: pyxdg is now available)
(Replaced content with "A [http://fedoraproject.org/wiki/Features/Python3F13 python 3 stack was added to Fedora in Fedora 13], parallel-installable with the "main" Python 2 stack, and it is gradu...")
(34 intermediate revisions by 6 users not shown)
Line 4: Line 4:


= Porting status =
= Porting status =
Please keep each of these tables sorted alphabetically by python module name


== Python 3 already in Fedora ==
The porting status is tracked at http://portingdb-encukou.rhcloud.com/.
{|
! Python Module !! Fedora Python 2 package !! Upstream status of Python 3 !! Fedora Python 3 package
|-
| || blender || Blender 2.5 [http://wiki.blender.org/index.php/BlenderDev/Blender2.5/PythonAPI_31 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 {{bz|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.
|-
| 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 {{bz|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 [https://bugzilla.redhat.com/show_bug.cgi?id=583186 #583186]), the [https://admin.fedoraproject.org/updates/python3-chardet-2.0.1-2.fc13 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 [http://www.cherrypy.org/wiki/WhatsNewIn32 CherryPy 3.2 (October 2009)], upstream releasing [http://download.cherrypy.org/cherrypy/3.2.0rc1/CherryPy-3.2.0rc1-py3.tar.gz separate tarballs for python 3] || In Fedora 13 onwards as '''python3-cherrypy''' (was {{bz|579593}}), though F-13 build is only available as [https://admin.fedoraproject.org/updates/python3-cherrypy-3.2.0-0.rc1.r2567.1.fc13 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 {{bz|536948}})
|-
| Crypto || python-crypto || PyCrypto supports Python 3 as of [http://lists.dlitz.net/pipermail/pycrypto/2011q4/000480.html 2.4] || In Fedora 17 onwards as '''python3-crypto''' subpackage of python-crypto (was {{bz|748529}})
|-
| cvxopt || || || In Fedora as '''python3-cvxopt''' subpackage of python-cvxopt
|-
| dateutil || || || In Fedora as '''python3-dateutil''' package
|-
| decorator || python-decorator || Upstream reports that [http://pypi.python.org/pypi/decorator/3.1.2 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)
|-
| 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 {{bz|579567}})
|-
| easygui || || || In Fedora as '''python3-easygui''' subpackage of python-easygui
|-
| enchant || python-enchant || As of 2010-12-14 [http://packages.python.org/pyenchant/news/item/version-1.6.5-released.html 1.6.5 onwards should work with Python 3] || In Fedora 17 onwards as '''python3-enchant''' subpackage of python-enchant (was {{bz|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 || || [https://fedorahosted.org/gcc-python-plugin/ 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 {{bz|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 {{bz|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 {{bz|533290}})
|-
| mako || python-mako || From version 0.3, mako supports python3 || In Fedora 14 onwards as '''python3-mako''' subpackage of python-mako (was {{bz|585036}})
|-
| || mysql-connector-python || || In Fedora as '''mysql-connector-python3'''subpackage 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 || [http://groups.google.com/group/minimock-dev/browse_thread/thread/a6cd2d572eec31d0 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 [http://www.dabeaz.com/ply/ 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 || || [http://python.projects.postgresql.org/ py-postgresql] || In Fedora 13 onwards  as '''python3-postgresql''' (was {{bz|579280}}), though F-13 build is only available as [https://admin.fedoraproject.org/updates/python3-postgresql-1.0.0-1.fc13 an update]
|-
| psutil || python-psutil || || In Fedora 13 onwards as a '''python3-psutil''' subpackage
|-
| psycopg2 || python-psycopg2 || As of [http://initd.org/psycopg/articles/2011/02/06/psycopg-24-beta1-released/  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 {{bz|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 [http://dev.pocoo.org/projects/pygments/ticket/448 "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 {{bz|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 || [http://pyparsing.wikispaces.com/News Python 3 support was added in 1.5.2 as a pyparsing_py3.py 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 {{bz|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 (was{{bz|582006}})
|-
| semanage || libsemanage-python || Generated by SWIG during build of libsemanage || In Fedora 14 onwards as '''libsemanage-python3''' subpackage of libsemanage (was {{bz|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 [https://admin.fedoraproject.org/updates/python-simplegeneric-0.8-3.fc16 a Fedora 16 update] (was {{bz|785056}})
|-
| sip || sip || [http://freshmeat.net/projects/python-sip/releases/300495 added] (single tarball) || In Fedora 14 onwards as '''python3-sip''' and '''python3-sip-devel''' subpackages of "sip" (was {{bz|545124}})
|-
| six || python-six || || In Fedora 16 onwards as '''python3-six''' (was {{bz|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 {{bz|560456}})
|-
| sphinx || python-sphinx || Upstream [http://groups.google.com/group/sphinx-dev/browse_thread/thread/42a35bf1ccd91794/22d3fbf5fd6d6906 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
|-
| xdg || pyxdg || || In Fedora as '''python3-pyxdg''' subpackage of pyxdg as of Fedora 17 onwards (via [https://admin.fedoraproject.org/updates/pyxdg-0.23-1.fc17 an update])
|-
| 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 ==
To submit changes or new notes to that app, see the source at https://github.com/fedora-python/portingdb/
{|
! 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 ||
|-
| IPy || python-IPy || [https://github.com/haypo/python-ipy/commit/91e44dfe8e7727f8ee2a3cc3b522d93942750352 0.73 works with Python 3] ||
|-
| PyKDE4  || PyKDE4 (from the kdebindings srpm) || || {{bz|587005}}
|-
| rpm || rpm-python (subpackage of "rpm")|| dmalcolm and pmatilai [http://dmalcolm.livejournal.com/3340.html ported the C extension for librpm to work with both python 2 and 3]; released as [http://www.rpm.org/wiki/Releases/4.8.0 rpm 4.8.0] || '''Needs packaging work''': see {{bz|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 || ||
|-
| paste.deploy || python-paste-deploy || ||
|-
| paste.script || python-paste-script || ||
|-
| py || python-py || 1.3.0 has [http://codespeak.net/py/dist/announce/release-1.3.0.html "...improved compatibility with Python3..."] ||
|-
| 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 || 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 [http://bitbucket.org/ianb/virtualenv/issue/10/python-3-support 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 [https://www.redhat.com/archives/augeas-devel/2010-April/msg00002.html experimented with porting this to python 3] ||
|-
| Cheetah || python-cheetah || As of 2010-02-02, upstream site reports that [http://packages.python.org/Cheetah/roadmap.html#cheetah-v3-0 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 [http://www.mail-archive.com/python-ldap-dev@lists.sourceforge.net/msg00620.html 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 ||
|-
| 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 [http://www.pythonware.com/products/pil/ "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 [http://mail.python.org/pipermail/image-sig/2010-February/006124.html the port is stalled] ||
|-
| pylons || python-pylons || As of 2010-04-09, it's [http://wiki.pylonshq.com/display/pylonscommunity/Pylons+Roadmap+to+1.0 on the future roadmap for 1.1]; see also http://pylonshq.com/project/pylonshq/ticket/425 ||
|-
| wx || wxPython || As of 2010-02-03, appears not to be ported yet; see http://stackoverflow.com/questions/720806/wxpython-for-python-3-0 ||
|}
 
== 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 [http://blog.dscpl.com.au/2010/05/modpython-project-soon-to-be-officially.html 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 || <s>[https://bugzilla.redhat.com/show_bug.cgi?id=538616 rhbz 538616]</s> 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
|}
 
[[Category:Python]]

Revision as of 15:27, 4 November 2015

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

The porting status is tracked at http://portingdb-encukou.rhcloud.com/.

To submit changes or new notes to that app, see the source at https://github.com/fedora-python/portingdb/