pyspider all运行出错:①SyntaxError: invalid syntax,② Deprecated option ‘domaincontroller‘

运行环境:win10 64位,python 3.7

在安装好pyspider后,运行pyspider all之后出现如下错误:
Traceback (most recent call last):
SyntaxError: invalid syntax

在这里插入图片描述
在研究了一个上午之后,集众多网友智慧,这个错误的原因是:

python3.7不兼容pyspider问题(出现占用关键字的问题)

Python 3.5中引入了async和await,它们在Python 3.7中成为关键字。所以需要替换一下关键字。
在C:\Users\Administrator\AppData\Local\Programs\Python\Python37\Lib\site-packages\pyspider目录下run.py、fetcher>tornado_fetcher.py、webui>app.py,用pycharm软件打开这几个文件:
在这里插入图片描述
将每一个async替换换成async1。千万不要用ctrl+F替换,因为会使from…
import 里的SimpleAsyncHTTPClient和CurlAsyncHTTPClient也被修改。
但是,接下来当我运行pyspider all 的时候又出现了如下错误:
ValueError: Invalid configuration:Deprecated option ‘domaincontroller’: use ‘http_authenticator.domain_controller’ instead.
在这里插入图片描述
解决方法这是WsgiDAV发布了版本 pre-release 3.x导致的,所以只要把版本降下来就好了。

将wsgidav替换为2.4.1,在命令行下运行 pip install wsgidav==2.4.1

安装好后运行pyspider all,完美解决,若是出现下面的问题:
ImportError: cannot import name ‘DispatcherMiddleware’ from ‘werkzeug.wsgi’ (c:\program files (x86)\python37-32\lib\site-packages\werkzeug\wsgi.py)在这里插入图片描述
原因:

1、没有安装werkzeug

2、werkzeug的版本为1.0.0,这个版本中没有DispatcherMiddleware方法

解决办法:

卸载werkzeug,重新安装低版本的werkzeug
卸载命令:python -m pip uninstall werkzeug
安装指定版本:python -m pip install werkzeug==0.16.0

最后来运行pyspider all,成功启动pyspider
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值