From Fedora Project Wiki

m (→‎Porting status: scipy is in)
m (internal link cleaning)
 
(41 intermediate revisions by 8 users not shown)
Line 1: Line 1:
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 gradually growing additional RPMs, as more code is ported to Python 3.
A [[Features/Python3F13|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 <code>/usr/bin/python</code> is still Python 2.
Note that <code>/usr/bin/python</code> is still Python 2.


= 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
|-
| 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)
|-
| 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
|-
| 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
|-
| 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.
|-
| paste || python-paste || || In Fedora 15 onwards as '''python3-paste''' subpackage of python-paste
|-
| 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}})
|-
| 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
|-
| 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
|-
| 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 || ||
|-
| nose  || python-nose || This is the current nose3 branch [http://bitbucket.org/jpellerin/nose3/ on bitbucket].  Googlecode branch is out-of-date.  This [http://code.google.com/p/python-nose/issues/detail?id=240 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 [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 || ||
|-
| 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 ||
|-
| 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 [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 ||
|-
| 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 ||
|-
| xdg|| pyxdg || Appears to not yet be ported; see {{bz|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 [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]]

Latest revision as of 21:20, 19 September 2016

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/