Python、SWIG和其他奇怪的东西

Python、SWIG和其他奇怪的东西,python,usb,wrapper,swig,Python,Usb,Wrapper,Swig,我有一个USB模块的固件,我已经可以用visual C控制了。现在我想把它移植到python。为此,我需要的八达通图书馆是用c写的。我发现了一个名为octopus_wrap的文件,它是由SWIG创建的 然后我找到一个makefile,上面写着: 蟒蛇2.5: swig-python-outdir./../octopus.i gcc-fPIC-c.././liboctopus/src/octopus.c gcc-fPIC-c../octopus_wrap.c-I/usr/include/pytho

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

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

蟒蛇2.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-sharedoctopus\u wrap.o octopus.o/usr/lib/libusb.so-o\u 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-sharedoctopus\u wrap.o octopus.o/usr/lib/libusb.so-o\u octopus.so

赢: gcc-fPIC-c.././liboctopus/src/octopus.c-I/c/program/libusb-win32-device-bin-0.1.10.1/include gcc-fPIC-Coctopus_wrap.c-I/c/Python25/libs-lpython25-I/c/Python25/include-I/c/program/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章鱼*\U章鱼*

安装_python2.4: cp_octopus.so/usr/local/lib/python2.4/site-packages/ cp octopus.py/usr/local/lib/python2.4/site-packages/

安装_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”文件夹中(希望它是python2.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.
因此,考虑.So文件存在一个问题! 我的下一步是什么

我知道这是很多令人困惑的东西,但我希望你们中的任何人都能在我的脑海中带来一些光明


您应该提前链接并编译python2.6-lpython26
另外,windows的文件扩展名是.pyd no.so

因此.so文件与unix相关?确定。但是为什么要导入一个以前从未见过的.pyd文件:install_python2.5:cp_octopus.so/usr/local/lib/python2.5/site-packages/cp octopus.py/usr/local/lib/python2.5/site-packages/但是我说的导入的_octopus文件可能是编译器的输出文件是对的?!我可以用visual studio重新编译吗?当然可以,在swig生成.c文件后,您可以创建一个简单的setup.py来编译它。新手慢慢看哇!有什么理由一步一步地做。如何将swig和VC结合起来?你能再解释一下吗?这样我就可以听懂了?
import _octopus