3

我在名为 (_example.pyd) 的 Windows 下使用 SWIG 创建了一个 .pyd 文件。

我可以使用相同版本的 Python(Python 2.7.3)通过以下简单命令将文件发送到我的电子邮件并使用另一台 Windows 机器导入:

.>>> import _example

.>>>

但是当我将它发送到我的电子邮件并尝试使用 Mac 导入文件时,我得到:

"No module named _example"

有任何想法吗?

在这两种情况下,我都将文件保存到 Python 路径中。

4

2 回答 2

3

这是因为 Python 扩展(.pyd 文件)本质上是 DLL。
如果你想在 Mac 上使用你的扩展,你需要在 Mac 上编译它。

http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll

于 2012-08-08T14:37:52.773 回答
0

我曾经因为不同的原因遇到同样的错误:我从源代码构建了模块,除了我假设“.pyd”是一个通用扩展名(无论是 DLL 还是 ELF 共享对象),所以我告诉 gcc 创建“ mymodule.pyd”而不是“mymodule.so”:在 Linux 和 Windows 上,文件的内容在编译后是正确的,但名称仅在 Windows 上有效。

在Linux上,一个简单的mv mymodule.pyd mymodule.so解决了它。

于 2017-12-23T23:51:03.610 回答