ubuntu下执行 pyspider all 各种报错的解决方案【汇总】

一、报错后先杀掉phantomjs进程

如果报错了,记得先执行

netstat -ap | grep 25555

查找运行中的phantomjs所占的端口并kiil掉,否则下次无法执行命令。

二、ValueError: Invalid configuration: - Deprecated option 'domaincontroller': use 'http_authenticator

在运行pyspider all后报错

ubuntu下执行 pyspider all 各种报错的解决方案【汇总】_第1张图片

 

搜索了以后,找到解决方案。

  • 原因是因为WsgiDAV发布了版本 pre-release 3.x。
  • 解决办法
    • 在安装包中找到pyspider的资源包,然后找到webui文件里面的webdav.py文件打开,修改第209行即可。

'domaincontroller': NeedAuthController(app),

修改为:

'http_authenticator':{
        'HTTPAuthenticator':NeedAuthController(app),
    },

然后再执行pyspider all就能够通过http://localhost:5000打开页面了。

 

三、报语法错误SyntaxError: invalid syntax

  • async和await从 python3.7 开始已经加入保留关键字中. 参考: What’s New In Python 3.7, 所以async不能作为函数的参数名.
  • 修改/Library/anaconda3/lib/python3.7/site-packages/pyspider路径下的python文件中的async为shark(全部替换)
    • 1.run.py
    • 2.fetcher\tornado_fetcher.py
    • 3.webui\app.py

四、OSError: [Errno 98] Address already in use

sudo pkill -f python -9

 

 

你可能感兴趣的:(ubuntu下执行 pyspider all 各种报错的解决方案【汇总】)