我是在python3.7下安装的pyspider。
(1)安装完成后第一个错误:
这里是要主动修改三个文件,将里面所有的async替换为shark(注意只修改async,其中大写的Async不要去改!)
1、\Python\Lib\site-packages\pyspider\run.py
2、\Python\Lib\site-packages\pyspider\fetcher\tornado_fetcher.py
3、\Lib\site-packages\pyspider\webui\app.py
由于我用的是anaconda,所以应该在anaconda\Lib\site-packages\pyspider下去找这三个文件修改
1、\anaconda\Lib\site-packages\pyspider\run.py
2、\anaconda\Lib\site-packages\pyspider\fetcher\tornado_fetcher.py
3、\anaconda\Lib\site-packages\pyspider\webui\app.py
(2)完成后第二个错误,因为我是全部解决完后觉得太坑了才写的,所以报错信息有点模棱两可,大概是这样子的:
python3.7/site-packages/tornado/curl_httpclient.py", line 24, in < modle >
import pycurl # type: ignore
ImportError: DLL load failed:
这个问题是要重新安装一下pycurl,先把pycurl卸载掉
pip uninstall pycurl
但是又出现了卸载错误:
Cannot uninstall ‘pycurl’. It is a distutils installed project and thus we…
这个就直接到site-packages文件下找到pycurl的egg-info文件删除就好。然后到https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl这个网站下载对应pycurl的whl文件,用cmd进入安装目录执行命令:pip install pycurl-7.43.0.4-cp37-cp37m-win_amd64.whl即可安装完成
(3)接着执行pyspider all命令,又报错:
File “d:\anaconda\lib\site-packages\wsgidav\wsgidav_app.py”, line 118, in _check_config
raise ValueError("Invalid configuration:\n - " + "\n - ".join(errors))
ValueError: Invalid configuration:- Deprecated option ‘domaincontroller’: use ‘http_authenticator.domain_controller’ instead.
这个错误的解决方法是要把wsgidav版本降低
我先降到了2.4.1版本:
python -m pip install wsgidav2.4.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
结果还是一样的报错,继续降低…
python -m pip install werkzeug0.16.1 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
然后执行pyspider all命令,运行成功!
主要参考文献(由于解决问题时间比较长,有些文章已经不记得了,只能写两篇记得的,对其他作者表示歉意):
1.https://www.cnblogs.com/Mayfly-nymph/p/10808088.html
2.https://blog.csdn.net/lang_niu/article/details/104501473