.. highlight:: c .. _cporting-howto: ************************************* Porting Extension Modules to Python 3 ************************************* We recommend the following resources for porting extension modules to Python 3: * The `Migrating C extensions`_ chapter from *Supporting Python 3: An in-depth guide*, a book on moving from Python 2 to Python 3 in general, guides the reader through porting an extension module. * The `Porting guide`_ from the *py3c* project provides opinionated suggestions with supporting code. * The `Cython`_ and `CFFI`_ libraries offer abstractions over Python's C API. Extensions generally need to be re-written to use one of them, but the library then handles differences between various Python versions and implementations. .. _Migrating C extensions: http://python3porting.com/cextensions.html .. _Porting guide: https://py3c.readthedocs.io/en/latest/guide.html .. _Cython: https://cython.org/ .. _CFFI: https://cffi.readthedocs.io/en/latest/