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如下

     

  • 相关阅读:
    QOMO Linux 4.0 正式版发布
    LinkChecker 8.1 发布,网页链接检查
    pgBadger 2.1 发布,PG 日志分析
    Aletheia 0.1.1 发布,HTTP 调试工具
    Teiid 8.2 Beta1 发布,数据虚拟化系统
    zLogFabric 2.2 发布,集中式日志存储系统
    开源电子工作套件 Arduino Start Kit 登场
    Piwik 1.9 发布,网站访问统计系统
    Ruby 1.9.3p286 发布,安全修复版本
    toBraille 1.1.2 发布,Java 盲文库
  • 原文地址:https://www.cnblogs.com/lzhh/p/pyspider_0.html
Copyright © 2011-2022 走看看