安装pyspider报错问题解决

1.  async=True, get_object=False, no_input=False):
    ^^^^^
SyntaxError: invalid syntax

原因是:python3.7中async是关键字
解决办法是将这个关键字替换掉。主要有两个文件:D:\installed\Python\Lib\site-packages\pyspider\run.py 和 D:\installed\Python\Lib\site-packages\pyspider\fetcher\tornado_fetcher.py
在替换是要注意:只替换名为async 的变量或参数名。随便换成别的字符串即可。
替换保存后再次运行“pyspider all”

2.  class HTTPHeaders(collections.MutableMapping):
AttributeError: module 'collections' has no attribute 'MutableMapping'

原因:这个错误是因为Python 3.10中,collections模块的MutableMapping和MutableSet类被移动到了abc模块中,所以需要将collections.MutableMapping替换为collections.abc.MutableMapping

找到报错的文件的对应的行数,如File "C:\Users\shao\AppData\Roaming\Python\Python310\site-packages\tornado\httputil.py", line 106,将collections.MutableMapping替换为collections.abc.MutableMapping

3. from collections import Mapping as DictMixin
ImportError: cannot import name 'Mapping' from 'collections' (C:\Program Files\Python310\lib\collections\__init__.py)

同上,修改File "C:\Users\shao\AppData\Roaming\Python\Python310\site-packages\pyspider\libs\counter.py", line 16, 将collections替换为collections.abc

4. from collections import Mapping as DictMixin
ImportError: cannot import name 'Mapping' from 'collections' (C:\Program Files\Python310\lib\collections\__init__.py)

同上,修改File "C:\Users\shao\AppData\Roaming\Python\Python310\site-packages\pyspider\scheduler\task_queue.py", line 15, 将collections替换为collections.abc

5. 再次运行“pyspider all”
这时spider只启动到“scheduler xmlrpc listening on 127.0.0.1:23333”就停止了


继续替换...\site-packages\pyspider\webui\app.py中的async

6. AttributeError: module 'fractions' has no attribute 'gcd'

 解决方案:在 pyspider\libs\base_handler 文件中上方加入 import math
 文件下面将fractions.gcd()改为math.gcd()就可以了

7.AttributeError: 'QuitableFlask' object has no attribute 'before_first_request'. Did you mean: '_got_first_request'?

解决方案:pip install flask==2.2.5

8. ImportError: cannot import name 'DispatcherMiddleware' from 'werkzeug.wsgi'

解决方案:卸载原有版本 python -m pip  uninstall werkzeug,卸载完毕,安装0.16.1版本  python -m pip install werkzeug==0.16.1

9. phantomjs not found, continue running without it.

解决方案:Download PhantomJS

下载phantomjs,phantomjs.exe放到python.exe同级目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值