Windows中Pyspider安装以及错误处理

安装 pyspider 过程中出现错误 ERROR: Command errored out with exit status 10: python setup.py egg_info Check the logs for full command output.

  • 报错信息

  • 观察发现 pycurl 模块下载出错 导致无法继续下载

单独安装 pycurl

  • 下载地址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl

  • 一定要单独下载后本地安装对应版本

  • pip 下载本地文件

  • 搜索 pycurl 下载 合适的版本 一定要与 python 版本符合

    • 版本不符报错

    • 查看 python 版本

    • pycurl : 名称 pycurl‑7.43.0.4‑cp37‑cp37m‑win_amd64.whl, cp 为 对应python版本

async 错误

  • 错误图片

  • 错误原因

    • python3 中,已经将async 设置为关键字,而pyspider 版本更新缓慢并没有在此处修改,所以导致pyspider 不能正常启动。
  • 修改 pyspider 源码将 async 改为其它非关键字 (只修改 async 关键字的,其他含有这些字符的不需要修改)

    • 需要修改的源码所在位置

    • 修改源码

Wsgidav 错误

  • 错误图片

  • 错误原因

    • WsgiDav 新版本 已将更改源码 'domaincontroller': NeedAuthController(app),'http_authenticator': {'HTTPAuthenticator': NeedAuthController(app),},
  • 修改源码

    • 修改

werkzeug.wsgi 错误

  • 错误图片

  • 错误原因

    • werkzeug 1.0.0 版本及以上,没有DispatcherMiddleware方法
    • Pyspider 需要 werkzeug库版本在 0.15–1.0(不允许为1.0)
  • 重新下载 werkzeug 版本

    • pip install --upgrade werkzeug==0.16.1

io_Loop 错误

  • 报错 : TypeError: initialize() got an unexpected keyword argument ‘io_loop’
  • 错误原因 : python环境中,默认tornado版本是最新的5.0,在4.0之后就废弃了io_loop参数
  • 重新更新 tornado 版本 : pip install --upgrade tornado==4.5.1

*成功启动 *

  • pyspider all 启动成功