SunSAS

爬虫项目需要用到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等等,仔细查看报错信息,安装必须的依赖

分类:

技术点:

相关文章: