我在Windows下用SWIG创建了一个名为(_example.pyd)的.pyd文件。
我可以将文件发送到我的电子邮件,并使用相同版本的Python(Python 2.7.3)通过这个简单的命令将其导入另一台Windows机器:
.>>> import _example
.>>>
但是当我将它发送到我的电子邮件并尝试使用Mac导入文件时,我得到:
"No module named _example"
有什么想法吗?
在这两种情况下,我都将文件保存到Python路径中。
答案 0 :(得分:3)
这是因为Python扩展(.pyd文件)本质上是DLL 如果您想在Mac上使用扩展程序,则需要在Mac上编译它。
http://docs.python.org/faq/windows.html#is-a-pyd-file-the-same-as-a-dll
答案 1 :(得分:0)
我曾因同一个原因遇到同样的错误:我已经从源代码构建了模块,除了我假设" .pyd" 是一个通用扩展(不管它是DLL或ELF共享对象),所以我告诉gcc创建" mymodule.pyd"而不是" mymodule.so":在Linux和Windows上,文件的内容在编译后都是正确的,但名称仅在Windows上有效。
在Linux上,一个简单的mv mymodule.pyd mymodule.so
解决了它。