Python,SWIG等奇怪的东西

时间:2010-03-14 11:46:38

标签: python usb wrapper swig

我有一个USB模块的固件我已经可以通过visual C控制了。现在我想把它移植到python。为此,我需要用c编写的章鱼库。我发现了一个名为octopus_wrap的文件,它是由SWIG创建的!

然后我找到了一个makefile,上面写着:

  

的python2.5:       swig -python -outdir ./ ../octopus.i       gcc -fPIC -c ../../liboctopus/src/octopus.c       gcc -fPIC -c ../octopus_wrap.c -I /usr/include/python2.5       gcc -fPIC -shared octopus_wrap.o octopus.o /usr/lib/libusb.so -o _octopus.so

     

的python2.4:       swig -python -outdir ./ ../octopus.i       gcc -fPIC -c ../../liboctopus/src/octopus.c       gcc -fPIC -c ../octopus_wrap.c -I /usr/include/python2.4       gcc -fPIC -shared octopus_wrap.o octopus.o /usr/lib/libusb.so -o _octopus.so

     

赢:       gcc -fPIC -c ../../liboctopus/src/octopus.c -I /c/Programme/libusb-win32-device-bin-0.1.10.1/include       gcc -fPIC -c octopus_wrap.c -I / c / Python25 / libs -lpython25 -I / c / Python25 / include -I /c/Programme/libusb-win32-device-bin-0.1.10.1/include       gcc -fPIC -shared * .o -o _octopus.pyd -L / c / Python25 / libs -lpython25 -lusb -L ​​/ c / Program / libusb-win32-device-bin-0.1.10.1 / lib / gcc

     

清洁:       rm -f octopus * _octopus *

     

install_python2.4:       cp _octopus.so /usr/local/lib/python2.4/site-packages/       cp octopus.py /usr/local/lib/python2.4/site-packages /

     

install_python2.5:       cp _octopus.so /usr/local/lib/python2.5/site-packages/       cp octopus.py /usr/local/lib/python2.5/site-packages /

我不知道如何处理这个,但据我所知,octopus.py和_octopus.so是与python相关的结果输出文件吗?

幸运的是有人已经这样做了,所以我将这两个文件放到我的“python26 / lib”文件夹中(希望它无关紧要,如果它是python 2.5或2.6?!)

因此,在使用USB设备时,octopus.py是可以使用的库! 导入此文件会产生一些问题:

>>> 
Traceback (most recent call last):
File "C:\Users\ameise\My Dropbox\µC\AVR\OCTOPUS\octopususb-0.5\demos\python    \blink_status.py", line 8, in <module>
from  octopus import *
File "C:\Python26\lib\octopus.py", line 7, in <module>
import _octopus
ImportError: DLL load failed: module not found.

这是相关的第7行:

import _octopus

考虑到.so文件有问题! 我的下一步可能是什么?

我知道这有很多令人困惑的事情,但我希望你们中的任何一个人都可以为我带来一些亮点!

提前你

1 个答案:

答案 0 :(得分:0)

您应该链接并编译python2.6 -lpython26 。 Windows的文件扩展名也是.pyd no .so