PySpider安装遇到的坑及解决办法

这段时间在学爬虫,安装pyspider框架,遇到了很多坑,像关键字问题等等,本机已经安装好pycharm(python3.9),现做测试,需要在开发机上安装pyspider,基于windows下的安装遇到一些坑,记录一下。

安装命令

  • pip3 install pyspider
    • 这个过程应该能没什么问题,pyspider是对pip有版本要求的,所以最好自动升级一下

填坑

ok ,安装完成我们开始填坑。

  • 执行 pyspider all,立马报错:

    报错信息:

    
    File "d:\python\venv\lib\site-packages\pyspider\run.py", line 231
    async=True, get_object=False, no_input=False):
    ^
    SyntaxError: invalid syntax

这是因为python3.5开始把asyncawait设为关键字了,这里作为参数名与关键字冲突了,因此找到对应的py文件,将async修改为其他名称,我修改为pyspiderasync。在以下几个文件中存在:pyspider->run.pypyspider->fetcher->tornado_fetcher.pywebui>app.py。

- 再次执行 pyspider all, 报错:
![](https://p.pstatp.com/origin/1384900026e094d9a65ea)
**报错信息:**

ValueError: Invalid configuration:

  • Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.

这个是因为wsgidav版本太高了,重新安装一下:
pip install wsgidav==2.4.1

- 在运行,还报错:
![](https://p.pstatp.com/origin/fef200036a88bb09b5da)
**报错信息:**

ImportError: cannot import name 'DispatcherMiddleware' from 'werkzeug.wsgi' (d:\python\venv\lib\site-packages\werkzeug\wsgi.py)


这是因为werkzeug版本高了,DispatcherMiddleware这个类已经不存在了,因此重新安装小版本:

pip install werkzeug=0.16
为什么是0.16版本?我是再卸载后,暂不安装,直接执行pyspider时,错误提示信息中显示了最低版本为0.16:)

- 再次运行 pyspider all 填坑完毕,纪念一下
![](https://p.pstatp.com/origin/13858000236106042f24a)

# 其他错误

D:\python>pyspider all
d:\python\venv\lib\site-packages\pyspider\libs\utils.py:196: FutureWarning: timeout is not supported on your platform.
warnings.warn("timeout is not supported on your platform.", FutureWarning)



忽视即可。
转载请注明出处,谢谢!
THE END
分享
二维码
打赏
< <上一篇
下一篇>>