Python, SWIG и другие странные вещи - PullRequest
1 голос
/ 14 марта 2010

У меня есть прошивка для USB-модуля, которой я уже могу управлять с помощью visual C. Теперь я хочу перенести это на python.для этого мне нужна библиотека осьминога, которая написана на ц.Я нашел файл с именем octopus_wrap, который был создан SWIG!

, затем я нашел make-файл, который говорит:

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 осьминог.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.поэтому

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 *

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» (надеюсь, это не имеет значения, если это Python 2.5 или 2.6?!)

Так что при работе с устройством USBoctopus.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 голосов
/ 14 марта 2010

Вы должны связать и скомпилировать для python2.6 -lpython26 . Также расширение файла для Windows: .pyd no .so

...