python 找不到用 swig 编译的模块
我对 SWIG 和 python 有疑问。我有一个可以正确编译的 c 类,但 python 脚本说它找不到该模块。
我编译:
swig -c++ -python codes/codes.i
g++ -c -Wall -O4 -fPIC -pedantic codes/*.cc
g++ -I/usr/include/python2.6 -shared codes/codes_wrap.cxx *.o -o _codes.so
这给了我一个 _codes.so 文件,正如我所期望的,但是我有这个 python 文件:
import sys
import codes
(rest of the code omitted)
它给了我:
Traceback (most recent call last):
File "script.py", line 3, in <module>
import codes
ImportError: No module named codes
根据 http://www.swig.org/Doc1.3/Introduction.html#Introduction_nn8 这就是我应该做的... 这些文件都在同一目录中,所以路径应该没有问题?
I've a problem with SWIG and python. I've a c-class that compiles correctly, but the python script says it can't find the module.
I compile with:
swig -c++ -python codes/codes.i
g++ -c -Wall -O4 -fPIC -pedantic codes/*.cc
g++ -I/usr/include/python2.6 -shared codes/codes_wrap.cxx *.o -o _codes.so
This gives me a _codes.so file, as I would expect, but then I have this python file:
import sys
import codes
(rest of the code omitted)
It gives me:
Traceback (most recent call last):
File "script.py", line 3, in <module>
import codes
ImportError: No module named codes
According to http://www.swig.org/Doc1.3/Introduction.html#Introduction_nn8 this is all I should have to do...
The files are in the same directory, so the path should not be a problem ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
如果是发布版本,请将 _codes.so 重命名为 _codes.pyd。重命名为 _codes_d.pyd 以进行调试版本。
华泰
Rename your _codes.so to _codes.pyd if its a release build. Rename to _codes_d.pyd for debug builds.
HTH
上次我使用 SWIG 时,它生成了两个文件。在你的情况下,它应该是codes.py和_codes.so
你应该检查为什么codes.py不存在。
Last time I used SWIG, it generated two files. In your case it should be codes.py and _codes.so
You should check why codes.py is not present.
如果您从同一位置(目录)执行这些命令,_codes.so 将以 .我认为,codes.py 最终会出现在 ./codes/ 中。
if you are executing these commands from the same place (directory) _codes.so ends up in . and codes.py ends up in ./codes/ , I think.