2010-03-14 124 views
1

我有一個USB模塊的固件,我已經可以通過visual C控制了。現在我想將它移植到python。爲此我需要用c寫的章魚庫。我找到了一個名爲octopus_wrap的文件,它是由SWIG創建的!Python,SWIG和其他奇怪的東西

後來我發現一個makefile它說:

的python2.5: 痛飲-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 。所以

的python2.4: 痛飲-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

win: 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

clean: 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相關的結果輸出文件的權利?

幸運的是,已經有人這樣做,所以我把那些2檔,以我的「python26/lib目錄」文件夾(如果希望蟒蛇it's 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. 

和here's相關線路7:

import _octopus 

所以there's問題考慮.so文件! 我的下一步可能是什麼?

我知道這是很多令人困惑的東西,但我希望你們中的任何一個人都能爲我帶來一些光明!

你提前

+0

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文件可以是編譯器的輸出文件嗎?! – binaryguy 2010-03-14 13:19:05

回答

0

您應該鏈接並編譯了python2.6的-lpython26。 此外,Windows的文件擴展名爲.pyd no .so

+0

可以用visual studio重新編譯嗎? – binaryguy 2010-03-14 13:20:13

+0

當然你可以,在swig生成.c文件後,你可以創建一個簡單的setup.py來編譯它 請看http://docs.python.org/distutils/setupscript.html – fabrizioM 2010-03-14 13:56:16

+0

哇慢慢換一個菜鳥!一步一個腳印地興奮起來。 以及如何結合swig和VC? 你可以解釋一點,所以我可以遵循? – binaryguy 2010-03-14 20:23:23