Python C extension: Use extension PYD or DLL?

后端 未结 4 880
[愿得一人]
[愿得一人] 2020-12-13 09:21

I have a Python extension written in C and I wonder if I should use the file extension DLL or PYD under Windows. (And what would I use in Linux?)

Are there any diffe

4条回答
  •  死守一世寂寞
    2020-12-13 10:08

    According to the Creating Your Own Project step (Step 7 of "The Cookbook Approach") of Building C and C++ Extensions on Windows

    The output file should be called spam.pyd (in Release mode) or spam_d.pyd (in Debug mode). The extension .pyd was chosen to avoid confusion with a system library spam.dll to which your module could be a Python interface.

    So a .pyd file is just a DLL renamed to save on confusion.

    On linux however, speaking from experience it seems that you need to use the .so extension for python dlls. This is just a standard unix shared library. I can't provide a source or reason for why python on linux does not change the file extension, however I can show you how to demonstrate it. At the shell, run the following:

    python -vv
    >>> import fakemodule
    

    You'll notice that the output shows:

    trying /usr/lib/python2.5/site-packages/fakemodule.so

提交回复
热议问题