[Python-Dev] Addition of "pyprocessing" module to standard lib.

Jean-Paul Calderone exarkun at divmod.com
Wed May 21 21:58:06 CEST 2008


On Wed, 21 May 2008 20:57:33 +0200, "\"Martin v. Löwis\"" <martin at v.loewis.de> wrote:
>> As said before, PyOpenGL is an example of an extension that moved from C
>> code to Python/ctypes, luckily we don't use it, but what if the
>> maintainers of MySQL-Python or cx_Oracle decide to move to ctypes.
>> Having the ctypes extension in the stdlib doesn't imply it runs on any
>> platform where python runs. Extension writers should keep this in mind
>> when they decide to use ctypes. They should document, that their
>> extension depends on ctypes and therefore doesn't run on platforms where
>> ctypes doesn't work.
>
>Plus, even if ctypes works, the code might be incorrect, because they
>had been assuming structure layouts and symbolic constants that have
>just a different definition on some other platform, causing the
>extension module to crash.
>
>Writing portable ctypes modules is really hard - significantly harder
>than writing portable C code (although writing non-portable ctypes
>code is apparently easier than writing non-portable C code).

True.  There's some room for improvement in ctypes here, fortunately.

For example, PyPy has some tools which resolve the particular problem
you're talking about; the library is even available separately and can
(and probably should) be used by anyone writing a ctypes module.

Sample usage and installation instructions available here:

  http://codespeak.net/~fijal/configure.html

Jean-Paul


More information about the Python-Dev mailing list