python中*.pyd文件和DLL文件相同吗?

python

是的, .pyd 文件也是 dll ,但有一些差异。如果你有一个名为 foo.pyd 的DLL,那么它必须有一个函数 PyInit_foo() 。 然后你可以编写 Python 代码 “import foo” ,Python 将搜索 foo.pyd (以及 foo.py 、 foo.pyc )。如果找到它,将尝试调用 PyInit_foo() 来初始化它。你不应将 .exe 与 foo.lib 链接,因为这会导致 Windows 要求存在 DLL 。

请注意, foo.pyd 的搜索路径是 PYTHONPATH ,与 Windows 用于搜索 foo.dll 的路径不同。此外, foo.pyd 不需要存在来运行你的程序,而如果你将程序与 dll 链接,则需要 dll 。 当然,如果你想 importfoo ,则需要 foo.pyd 。在 DLL 中,链接在源代码中用 __declspec(dllexport) 声明。 在 .pyd 中,链接在可用函数列表中定义。

以上是 python中*.pyd文件和DLL文件相同吗? 的全部内容, 来源链接: utcz.com/z/520619.html

回到顶部