最近,学习编写爬虫代码的时候,由于我用的是python3,遇到了一些第三方包在安装的时候出错的情况。
1.首先去pypi网站上看看这个包是否有支持python3的版本。。。发现,好像并没有(这就有点尴尬了)
2.又想用这个模块,又不想再去搞一个python2的环境,也不想把前面写的一些代码再调整,怎么办呢?—–那就只有自己手动改这个模块,将这个模块的代码改成适应python3的版本。
3.安装:在 pypi网站上或者builtwith模块发布的网站上(在pypi上可以看到HOME Page)下载这个模块的安装包。有以下几种安装的方式
4.导入import buildwith。你会发现有很多错误。这时候,需要更改模块的__init__.py文件。需要改以下几点,改的同时可以使用import再试试,根据错误信息进行更改(可以先使用python3自带的2to3模块将python2语法的代码转换成python3的):
5.最后,import builtwith测试一下吧。
1.还是首先去pypi上看看最新的安装包lxml 3.7.3。一看,发现已经支持到了python3.6了。
2.果然使用pip install lxml方法安装这个包试试。打开命令窗口,输入pip install lxml,会看到
Collecting lxml
Downloading lxml-3.7.3-cp35-cp35m-win_amd64.whl(3.1MB)
这是自动下载对应我电脑上python3.5版本的whl安装包。
3.下载好后,没有安装。发现错误:
THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE.
说下载的文件hash值不对。并且提示我更新我的pip工具。
You are using pip version 8.1.1, however version 9.0.1 is available.
4.更新pip:
python -m pip install –upgrade pip
Successfully installed pip-9.0.1 更新成功
5.继续 pip install lxml
6.其实,还有另外的安装方法。手动安装:
7.如果是linux系统还需要安装依赖:
$ sudo apt-get install libxml2 libxml2-dev
$ sudo apt-get install libxlst libxslt-dev
$ sudo apt-get install python-libxml2 python-libxslt
再安装lxml
$ sudo easy_install lxml
1.查看pypi的pymongo 3.4.0
2.下载相应安装包:发现只支持到python3.5,如果我现在的python版本是最新的3.6怎么办呢?
3.下载离我python3.6版本最近的安装包pymongo-3.4.0-cp35-none-win_amd64.whl (md5) (因为我是Windows系统,所以下载中间带win的)
4.将安装包文件中间代表python版本的标志cp35更改位cp36(我的python版本),然后使用pip安装。
PS: 这样安装确实可以成功,不过由于并不是官方给的符合python版本的安装包,可能出现最新的python版本中某些语法跟安装包中不符的情况。不过一般来说这种语法上的大改动很少,不是python2到python3这种情况,仅仅是python3.5到python3.6这样是不会发生语法改动的,一般这种版本是兼容的。一 旦在使用过程中发现了问题,可能需要自己手动调整了,所以建议这样安装的包首先自己要在IDLE中多测试一下,其功能是否满足自己预期。