Windows安装Scrapy报错,Cannot open include file: openssl/opensslv.h: No such file or directory error

交接爬虫项目时,要安装Scrapy框架,操作系统都是Windows。本来在我的电脑上运行好好的程序,结果在同事电脑上连安装都安装不上。

究其原因,主要的错误是在安装Scrapy时,需要引入PySSlOpen模块时抛出的错误,Cannot open include file: openssl/opensslv.h: No such file or directory error。

我参照了很多网上的做法,都不管用。把我给气的。由于我的电脑上的Python是32位的,而同事的则是64位,我实在没辙,让他也换成32位,又装了一个pywin32程序,让32位的Python也能运行64位的模块,本来以为能成功,结果一直报win32应用程序出错,实在是一头雾水,可是我明明已经装了pywin32程序了,而且版本号都是2.7。无奈之下,卸了再装64位的Python。

因为我发现同事装了 Microsoft Visual C++ Compiler Package for Pythoon 2.7,这个在我电脑里没有,于是我让他卸了,由于卸了之后,安装Scrapy会报Visual C++ 9.0的错误,网上一搜,一种说是要安装 Microsoft Visual C++ 2008 Redistributable,还一种就是安装之前被我卸载的 Microsoft Visual C++ Compiler Package for Pythoon 2.7 程序。
我先安装了 Microsoft Visual C++ 2008 Redistributable 32位和64位的程序。然后运行还是报Visual C++ 9.0的错误,只能继续安装 Microsoft Visual C++ Compiler Package for Pythoon 2.7。由于我的Scrapy版本较低,其引用的模块版本也较低,于是我选定安装Scrapy关联的模块的版本,代码如下:

1
pip install -v cryptography X.XX.XX

由于我安装好了较低版本的cryptography模块,以及pyopenssl模块,Scrapy这一次安装没有抛错。

总结下来,可能是我安装了 Microsoft Visual C++ 2008 Redistributable,还有可能就是在安装模块时,采用了较低版本。

后记

我在自己的Win10虚拟机里,也安装了Python,版本是2.7.13,64位的。Scrapy安装的是最新的,而且竟然一遍过,全程没有出错。

我在虚拟机里安装了VS 2015,但这绝对不是关键,无非是装了Microsoft Visual C++ 2015 Redistributable,64和32位。关键是我看到了Microsoft Visual C++ 2008 Redistributable,32位。我想为啥同事之前一直安装Scrapy出错的关键,就是在这儿了。

avatar

chilihotpot

You Are The JavaScript In My HTML