无法安装'gattlib'`

2024-06-24 12:37:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试用Python安装^{},以便使用它的一些蓝牙工具

操作系统是ubuntu 18.04.4 LTS

我现在已经尝试了以下方法(例如here):

sudo apt-get install mercurial
hg clone https://bitbucket.org/OscarAcena/pygattlib
cd pygattlib
cat DEPENDS
sudo apt-get install libboost-thread-dev libboost-python-dev    libbluetooth-dev libglib2.0-dev python-dev
sudo python3 setup.py install

它给出了(我的Python是3.6.9):

usr/bin/ld: cannot find -lboost-python36
collect2: error: ld returned 1 exit status
error: command 'x86_64-linux-gnu-g++' failed with exit status 1

此外,我尝试:

sudo apt install python3-gattlib

其中:

the following packages have unmet dependencies:
python3-gattlib: Depends: python3 (>= 3.7~) but 3.6.7-1~18.04 is to be installed
                 Depends: libboost-python1.67.0 but is is not installable
                 Depends: libboost-thread1.67.0 but is is not installable

尽管在第一次尝试中成功安装了libboostpython和libboostthread(见上文),并且python3返回Python 3.6.9

pip3 install gattlib

显示:

Building wheel for gattlib(setup.py) ... error

Running setup.py install for gattlib ... error

这与我从(following instructions from this question):得到的结果完全相同

sudo pip3 download gattlib  
sudo tar xvzf ./gattlib-0.20200122.tar.gz
cd gattlib-0.20200122/
sudo sed -ie 's/boost_python-py34/boost_python36/' setup.py
pip3 install .

在其中,我理解为在运行安装文件之前对其进行了必要的调整,因为如果我理解正确的话,python版本的硬编码是错误的

我尝试了更多的东西,但都没用:

pip3 install --upgrade setuptools
sudo apt-get install python3.6-dev libmysqlclient-dev
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo apt-get install libpython-dev
sudo apt-get install libevent-dev
sudo pip3 install gattlib
wget -qO- http://pike.esi.uclm.es/add-pike-repo.sh | sudo sh
sudo apt update
sudo apt install python3-gattlib
sudo apt-get install libbluetooth-dev
pip3 install --upgrade pip
sudo apt-get install mercurial
pip3 install gattlib
sudo apt-get install libboost-all-dev

cd /usr/lib/x86-64-linux-gnu
sudo ln -s libboost_python-py35.so libboost_python-py36.so

sudo apt-get install libbluetooth-dev bluez bluez-hcidump libboost-python-dev libboost-thread-dev libglib2.0-dev

hg clone https://bitbucket.org/OscarAcena/pygattlib
cd pygattlib
cat DEPENDS
sudo apt-get install libboost-thread-dev libboost-python-dev    libbluetooth-dev libglib2.0-dev python-dev
sudo python3 setup.py install
sudo python setup.py install

pip3 install gTTS

sudo apt-get install python3 python-dev python3-dev \
build-essential libssl-dev libffi-dev \
libxml2-dev libxslt1-dev zlib1g-dev \
python-pip
sudo apt-get install aptitude
sudo aptitude install libboost-all-dev

Tags: installpydevgetissetuppip3sudo
2条回答

我跑

sudo python3 setup.py install

我也得到了一个错误

usr/bin/ld: cannot find -lboost-python36

因为我没有boost-python36.a但是boost-python3-py36.a

(我使用locate boost-python3找到这个文件,它使用带有文件名的数据库,因此它比find运行得更快,但它可能不是默认安装的)

我不得不编辑setup.py并进行更改

boost_libs = ["boost_python3"+str(sys.version_info.minor)]

boost_libs = ["boost_python3-py36"]

还是更普遍

boost_libs = ["boost_python3-py3"+str(sys.version_info.minor)]

测试基于Ubuntu 18.04的od Linux Mint 19.3 Tricia

您需要安装包含Python C API头文件的python-dev。下面应该可以做到这一点(确保用Python版本替换X):

sudo apt-get install python3.X-dev

相关问题 更多 >