Search code examples
pythonwinapicpython

Python's _winapi module


I was trying to write some python code that requires calls to native WINAPI functions. At first I came across the pypiwin32 package. Then, somewhere on the internet I saw someone using the _winapi module. I found no proper documentation for this module, only this link to cpython's GitHub page.
Is this a cpython-specific module? That is, is it not guaranteed that other implementations have this module?
Do I need the pypiwin32 package if the functions I need are already implemented in the _winapi module?


Solution

  • It seems _winapi is specific to CPython and was added in python 3.3 under Issue 11750.

    See Modules/_winapi.c which was added by this commit

    This fits with the following observed behaviour:

    • python 2.x - 3.2 import _winapi fails with ImportError
    • python 3.3+ import _winapi works fine

    Relying upon _winapi is a bad idea as it's undocumented and CPython-specific.