zoukankan      html  css  js  c++  java
  • pyspider all 会遇到的诸多拦路虎!(Python3.7)

    情形1:

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

    成功安装pyspider以后,运行pyspider all以后会有上面的问题;

    解决办法:

    在pyspider的安装包中,找到webui文件夹,然后找到webdav.py文件,找到下面的代码:'domaincontroller': NeedAuthController(app),

    修改成如下:

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

    情形2:

    涉及async的错误提示 SyntaxError: invalid syntax

    原因:

      Python 3.5中引入了async和await,在在Python 3.7中成为关键字。所以要替换一下关键字咯。

    解决办法:

    1. 降低Python的版本,
    2. 根据提示路径把文件里面的async全部换成async_,
      • 一共三个文件
        • PythonLibsite-packagespyspider un.py
        • PythonLibsite-packagespyspiderfetcher ornado_fetcher.py
        • Libsite-packagespyspiderwebuiapp.py

    但是 !!!注意:只替换名为async 的变量或参数名。不要图省事选择“全部替换” 文件tornado_fetcher.py中如果全部替换是17处,便会报错

    from tornado.curl_httpclient import CurlAsyncHTTPClient
    from tornado.simple_httpclient import SimpleAsyncHTTPClient

    还有下面两处引用也不要修改!!!这个很重要

    情形3:

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

    原因:

    1. 没有安装werkzeug
    2. werkzeug的版本为1.0.0,这个版本中没有DispatcherMiddleware方法,所以降低版本可以正常启动了,

     解决办法:

    python -m pip install werkzeug==0.16.1 #安装0.16.1版本`

    情形4:(我没遇到 手动滑稽)

    Deprecated option ‘domaincontroller’: use ‘domain_controller’ instead.

    原因:

    WsgiDAV发布了版本 pre-release 3.x导致的,所以只要把版本降下来就好了。

    解决办法:

    将wsgidav替换为2.4.1

    python -m pip install wsgidav==2.4.1

    成功截图:

    访问 localhost:5000如下

     

  • 相关阅读:
    celery的使用和原理
    内核通知链
    数据流中的中位数
    二叉搜索树的后序遍历序列
    Javascript设计模式系统讲解与应用,JS设计模式详解
    微服务系列之ZooKeeper注册中心和Nacos注册中心
    微信小程序开发详解:小程序入门与实战-纯正商业级应用技术
    Java零基础该怎么去学习Java?学好Java应该如何去做?
    Flutter从入门到进阶实战携程网App项目详解
    Python升级3.6强力Django+杀手级Xadmin打造在线教育平台
  • 原文地址:https://www.cnblogs.com/lzhh/p/pyspider_0.html
Copyright © 2011-2022 走看看