Я пытаюсь использовать беспроводной приемопередатчик NRF24L01 + с Raspberry Pi. Основная библиотека для этого - https://tmrh20.github.io/RF24/index.html, и эта библиотека находится на C ++. На этом сайте есть список оберток вокруг этой библиотеки https://github.com/mz-fuzzy/RF24, который является одним из многих, но, похоже, его поддерживает реальный сопровождающий библиотеки. TMRh20 содержит инструкции по установке библиотеки https://tmrh20.github.io/RF24/Python.html, и, по словам обоих сопровождающих, библиотека python поддерживает python 3. Одна из проблем заключается в том, что вам необходимо вручную связать библиотеку надстроек python, полученную с помощью
* 1008. *
Чтобы связать это, они предлагают сделать:
sudo ln -s /usr/lib/arm-linux-gnueabihf/libboost_python-py34.so /usr/lib/arm-linux-gnueabihf/libboost_python3.so
, что в моем случае, так как у меня есть Python 3.7, я заменяю это вместо так, чтобы libboost_python-py37.so
Он собирает и устанавливаетнормально с
python3 setup.py build
sudo python3 setup.py install
, когда я запускаю python и пытаюсь
import RF24
Я получаю эту ошибку
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: /usr/lib/arm-linux-gnueabihf/libboost_python27.so.1.67.0: undefined symbol: PyString_Type
Похоже, что библиотека-оболочка компилируется против boostдля python2.7, чего не должно быть, поскольку в файле setup.py я изменил его на
module_RF24 = Extension('RF24',
libraries = ['rf24-bcm', 'boost_python-py37'],
sources = ['pyRF24.cpp'])
setup(name='RF24',
version='1.0',
ext_modules=[module_RF24]
)