linux下安装lxml包

爬虫项目需要用到lxml包,解析html文件,但是linux服务器没有lxml包,

服务器中python版本是3.8.

直接使用命令安装:

pip install lxml

中途会报错,错误提示我没有保存,懒得再现了。以为是python版本问题,再运行:

pip3 install lxml

注意此命令需要先安装pip3,但仍然报错。

可能是线上包有问题,于是想通过安装whl文件,本地安装lxml

 

首先查看当前python可支持的whl文件:

python环境下运行:

import pip._internal
print(pip._internal.pep425tags.get_supported())

又报错,说是没有.pep425tags属性,百度后发现,上面是AMD64运行代码,

下面是win32运行代码

import pip
print(pip.pep425tags.get_supported())

而linux下(或者只要是python3)可使用以下命令:

import wheel.pep425tags

print(wheel.pep425tags.get_supported())

结果如下:

[('cp38', 'cp38m', 'linux_x86_64'), ('cp38', 'abi3', 'linux_x86_64'), ('cp38', 'none', 'linux_x86_64'), 
('cp37', 'abi3', 'linux_x86_64'), ('cp36', 'abi3', 'linux_x86_64'), ('cp35', 'abi3', 'linux_x86_64'),
('cp34', 'abi3', 'linux_x86_64'), ('cp33', 'abi3', 'linux_x86_64'), ('cp32', 'abi3', 'linux_x86_64'),
('cp38', 'none', 'any'), ('cp3', 'none', 'any'), ('cp37', 'none', 'any'), ('cp36', 'none', 'any'),
('cp35', 'none', 'any'), ('cp34', 'none', 'any'), ('cp33', 'none', 'any'), ('cp32', 'none', 'any'),
('cp31', 'none', 'any'), ('cp30', 'none', 'any'), ('py3', 'none', 'linux_x86_64'), ('py38', 'none', 'any'),
('py3', 'none', 'any'), ('py37', 'none', 'any'), ('py36', 'none', 'any'), ('py35', 'none', 'any'),
('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]

访问https://pypi.org/project/lxml/#files下载所需要的包,结果发现,居然都不合适,只会提示此文件不匹配。

 

pip安装lxml

最后还是通过pip安装,win下直接pip install lxml就完事了。linux不行,因为它有依赖,首先需要安装依赖:

yum install libxslt-devel
yum install libxml2

当然也许还需要别的依赖,这可能是你的linux太菜,python环境得有吧,python-devel等等,仔细查看报错信息,安装必须的依赖

上一篇:Scrapy在Ubuntu下的安装与配置


下一篇:Python:XML中的所有标记名称中的字符串替换(用下划线替换连字符)