Я вручную скомпилировал python-openzwave для работы с C++ library.Компилировать и использовать python-openzwave с открытым zwave в нестандартном месте
Я хотел бы использовать его в качестве дополнения Kodi (OpenELEC работает на Pi 3), поэтому не может использовать стандартную установку. Я скомпилировал все, загрузил отсутствующие six
и louie
libs, а теперь попробуйте запустить hello_world.py
.
Моя текущая структура каталоги выглядит следующим образом:
- root
- bin
- .lib
- config
Alarm.o
...
libopenzwave.a
libopenzwave.so
libopenzwave.so.1.4
...
- libopenzwave
driver.pxd
group.pxd
...
- louie
__init__.py
dispatcher.py
...
- openzwave
__init__.py
command.py
...
six.py
hello_world.py
Но когда я бегу hello_world.py, я получаю следующее сообщение об ошибке -
Traceback (most recent call last):
File "hello_world.py", line 40, in <module>
from openzwave.controller import ZWaveController
File "/storage/.kodi/addons/service.multimedia.open-zwave/openzwave/controller.py", line 34, in <module>
from libopenzwave import PyStatDriver, PyControllerState
ImportError: No module named libopenzwave
Если я перееду libopenzwave.a
и libopenzwave.so
к корневой папке, то я получаю следующую ошибку:
Traceback (most recent call last):
File "hello_world.py", line 40, in <module>
from openzwave.controller import ZWaveController
File "/storage/.kodi/addons/service.multimedia.open-zwave/openzwave/controller.py", line 34, in <module>
from libopenzwave import PyStatDriver, PyControllerState
ImportError: dynamic module does not define init function (initlibopenzwave)
Wh у меня неправильная настройка?
вы уверены, что ваш модуль имеет данные инициализации, как сказано здесь: https://docs.python.org/3/ extend/extend.html # the-module-s-method-table-and-initialization-function? – noteness
Вручную скомпилировано, как именно? Не обнаруживать 'initlibopenzwave' не вызывает' initlibopenzwave', поскольку файлы 'Cython' не являются' cythonized' и скомпилированы правильно ('Cython' позаботится о создании' init 'функций для вас. Не могли бы вы подробнее остановиться на процесс компиляции? –
@Jim, я загрузил источник https://github.com/OpenZWave/python-openzwave/raw/master/archives/python-openzwave-0.3.1.tgz, распаковал его и запустил 'make build '. Эта версия не требует' Cython' в соответствии с этим обсуждением - https://groups.google.com/forum/#!topic/python-openzwave-discuss/Yrgf-Xg5XRk. –