diff options
author | Benjamin Peterson <benjamin@python.org> | 2015-01-05 20:38:46 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2015-01-05 20:38:46 (GMT) |
commit | 63b55580fbe496204100e548ad41a10d933cc470 (patch) | |
tree | 4d3f2bf2a00ba4e6cb9da722de0aae5f75944459 /Doc/extending | |
parent | 14183208506914ab595cc9bc3917fd2b828bcfd5 (diff) | |
download | cpython-63b55580fbe496204100e548ad41a10d933cc470.zip cpython-63b55580fbe496204100e548ad41a10d933cc470.tar.gz cpython-63b55580fbe496204100e548ad41a10d933cc470.tar.bz2 |
emphasize that cffi is better than extension modules for portability
Diffstat (limited to 'Doc/extending')
-rw-r--r-- | Doc/extending/extending.rst | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst index e78fe0c..c10efa9 100644 --- a/Doc/extending/extending.rst +++ b/Doc/extending/extending.rst @@ -20,12 +20,17 @@ source file by including the header ``"Python.h"``. The compilation of an extension module depends on its intended use as well as on your system setup; details are given in later chapters. -Do note that if your use case is calling C library functions or system calls, -you should consider using the :mod:`ctypes` module rather than writing custom -C code. Not only does :mod:`ctypes` let you write Python code to interface -with C code, but it is more portable between implementations of Python than -writing and compiling an extension module which typically ties you to CPython. +.. note:: + The C extension interface is specific to CPython, and extension modules do + not work on other Python implementations. In many cases, it is possible to + avoid writing C extensions and preserve portability to other implementations. + For example, if your use case is calling C library functions or system calls, + you should consider using the :mod:`ctypes` module or the `cffi + <http://cffi.readthedocs.org>`_ library rather than writing custom C code. + These modules let you write Python code to interface with C code and are more + portable between implementations of Python than writing and compiling a C + extension module. .. _extending-simpleexample: |