MOON
Server: Apache
System: Linux cl1170g 4.19.62-mod-std-ipv6-64-rescue #828825 SMP Tue Jul 30 13:54:49 UTC 2019 x86_64
User: wh0f20bb (1057)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: //proc/thread-self/root/tmp/python-build.20241125193944.32536/Python-3.10.4/Doc/howto/cporting.rst
.. 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: http://cython.org/
.. _CFFI: https://cffi.readthedocs.io/en/latest/