Python环境pip安装失败:构建lxml wheel包(setup.py)出错及dronekit模块安装中断问题
Hey there, let's tackle these two pip installation issues you're facing—both boil down to lxml's compilation dependencies, so we'll fix them step by step:
1. 通用Python环境下building wheel for lxml (setup.py)失败
When you hit this error during pip install, it's almost always because lxml's source code compilation requires missing system-level libraries. Lxml depends on the development packages for libxml2 and libxslt, so let's install those first:
Debian/Ubuntu系系统(含树莓派)
打开终端执行:sudo apt-get update sudo apt-get install libxml2-dev libxslt1-dev python3-dev(如果仍在使用Python 2,把
python3-dev换成python-dev即可)CentOS/RHEL系系统
执行以下命令:sudo yum update sudo yum install libxml2-devel libxslt-devel python3-dev同样,Python 2环境下替换为
python-dev。
安装完依赖后,重新执行你的pip install命令,lxml应该就能成功构建wheel了。
2. 树莓派安装dronekit时lxml编译中断
从你的输出可以看到,安装dronekit时自动依赖了lxml,但piwheels上没有适配的预编译wheel,因此触发了源码编译并最终中断。解决步骤如下:
先安装树莓派上的所有编译依赖
编译过程需要编译器和之前提到的开发库,执行:sudo apt-get update sudo apt-get install libxml2-dev libxslt1-dev python3-dev gcc强制使用预编译的lxml wheel
Piwheels为ARM架构提供了大部分流行包的预编译wheel,先单独安装lxml避免源码编译:pip install lxml --only-binary :all:如果存在兼容的wheel,会直接下载安装。之后再执行
pip install dronekit即可。预编译wheel不可用时,指定稳定旧版本的lxml
部分新版本lxml在树莓派上编译可能存在问题,可以先安装一个经过验证的稳定版本:pip install lxml==4.5.3安装完成后,再执行
pip install dronekit就不会碰到lxml的构建问题了。处理权限警告
你的输出里有Defaulting to user installation because normal site-packages is not writeable的提示,如果想系统级安装dronekit(而非仅当前用户),可以用sudo搭配Python3对应的pip:sudo pip3 install dronekit
内容的提问来源于stack exchange,提问作者MUSTAFA KENDİGÜZEL

