Python language-check包的安装(涉及pycontractions的安装)
最近朋友lzr求助,表示 pycontractions 包装不上,先是报 error: Microsoft Visual C++ 14.0 or greater is required.
,解决完这个问题后又报urllib.error.URLError
和ERROR: Failed building wheel for language-check
错误。
第一个错误网上已经有解决的方法(报错的后面也给了解决的链接),在此不再赘述。这里重点阐述第二个错误,也就是装不上language-check
的URLError
错误。据说这已经是一个老bug了,但是没人修,于是我稍加尝试,成功解决了问题并装上了language-check
,进而装上了pycontractions
。以下是主要的解决步骤:
1. language-check 的安装
1.1 下载源文件到本地
在 PyPI 里搜索 language-check ,然后下载源文件到本地:
1.2 修改源文件
搜索URLError
错误的相关信息,可以知道出现这个错误的主要原因是我们的URL请求由于不含任何设备信息,所以被服务器当成了爬虫并被禁止访问。解决方法就是在访问链接时,加入header
参数。通过定位错误,可以找到language-check
的源码进行URL访问的代码:language-check-1.1/download_lt.py
的第128行:
再仿照解决URLError
错误的方法:
于是对源文件稍加修改:
即把第19行替换为如下:
from urllib.request import urlopen, Request
再第128行替换为如下:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'}
req = Request(url=url, headers=headers)
with closing(urlopen(req)) as u:
保存,即完成对源文件的修改。
1.3 用pip安装修改后的language-check源文件
使用终端进入源文件所在文件夹language-check-1.1
,执行
python setup.py install
(如果下载过程卡了,可以Ctrl + C
取消,然后重试)
2 安装 pycontractions
安装好 language-check
后,就可以执行以下代码进行安装了
pip install pycontractions