win8下安装scrapy,一堆错误,一堆依赖,从网上找了些资料,备份。
首先说说安装过程中遇到过的问题吧:
1、error: Unable to find vcvarsall.bat
这个错误是因为python需要Vs2008的编译环境,如果你的电脑里没有安装的话就会报这个错误。
针对这个问题,网上的方法大多都是安装vs2008/2010等或者是使用MinGW来代替默认的编译环境,改用gcc,这个我已经实验过,反正我是没有成功,尤其是MinGW的那个下载速度让我受不了,为了这个我折腾了近1下午。
2、msvc9compiler.py: ValueError: [u'path']
关于这个错误是因为默认情况下vs2008 express版本没有x64位的编译环境导致的,需要安装x64位编译环境。
解决办法是使用vs2008的pro版,并且安装的时候选择64位编译工具。。
下面给出我经过多次实验可成功安装的方法,以下步骤在win7 64位和python 2.7.8中测试成功。默认已安装好了python2.7.8
1、下载Visual C++ 2008 Express Edition版并安装
关于vs2008的版本选择,我这里纠结了很久,最后选择了Expression版本,这个版本的特点是安装包相对比较小一点,比起pro版本来说安装速度快了不少,而且安装的程序也相对较少。关于上文提到的没有64位编译环境,我没有处理,我使用了一种取巧的方式安装成功了。
这个版本安装完成后建议大家去微软注册一下,这是免费注册的,填一个表即可。
2、使用easy_install安装如下包
easy_install cssselect lxml queuelib six twisted w3lib zope.interface
这些包主要是安装scrapy时的一些依赖包。。
3、使用pip安装如下包
pip install pyOpenSSL cryptography cffi pycparser
为什么不用easy_install安装这4个包呢?因为会报[u'path']错误,所以请严格按我的来。
4、使用easy_install安装scrapy
easy_install scrapy
上面依赖关系已经解决了,所以这个时候你就可以随便的安装了。。。
5、如需卸载scrapy,请执行如下命令:
pip uninstall cffi cryptography cssselect lxml pycparser pyopenssl queuelib six twisted w3lib zope.interface scrapy
另外:setuptools,pip,install,UnicodeDecodeError: 'ascii' codec can't decode byte.原因和解决方案
网上找了一大圈,发现也有人在bitbucket提了相同的问题,同时这个stackoverflow的问题也与之类似。
现在发现,这应该都是同一个问题。原因与注册表有关,可能与某些国产软件对注册表的改写的gbk格式导致python无法进行第三方库的安装操作。
解决方法:打开C:\Python27\Lib下的 mimetypes.py 文件,找到大概256行(你可以用Notepad++的搜索功能)的
‘default_encoding = sys.getdefaultencoding()’。
在这行前面添加三行:
<span style="font-size:18px;">if sys.getdefaultencoding() != 'gbk':
reload(sys)
sys.setdefaultencoding('gbk')
default_encoding = sys.getdefaultencoding()</span>