pyspider all 啓動失敗:ValueError: Invalid configuration


執行 pyspider all 啓動命令報錯如下:

C:\Users\Lenovo>pyspider all
e:\python\lib\site-packages\pyspider\libs\utils.py:196: FutureWarning: timeout is not supported on your platform.
  warnings.warn("timeout is not supported on your platform.", FutureWarning)
[W 190915 16:08:38 run:413] phantomjs not found, continue running without it.
[I 190915 16:08:40 result_worker:49] result_worker starting...
[I 190915 16:08:44 processor:211] processor starting...
[I 190915 16:08:44 scheduler:647] scheduler starting...
[I 190915 16:08:44 scheduler:586] in 5m: new:0,success:0,retry:0,failed:0
[I 190915 16:08:45 tornado_fetcher:638] fetcher starting...
[I 190915 16:08:45 scheduler:782] scheduler.xmlrpc listening on 127.0.0.1:23333
[I 190915 16:08:47 tornado_fetcher:671] fetcher exiting...
[I 190915 16:08:47 app:84] webui exiting...
[I 190915 16:08:47 scheduler:663] scheduler exiting...
[I 190915 16:08:47 result_worker:66] result_worker exiting...
[I 190915 16:08:48 processor:229] processor exiting...
Traceback (most recent call last):
  File "E:\Python\Scripts\pyspider-script.py", line 11, in <module>
    load_entry_point('pyspider==0.3.10', 'console_scripts', 'pyspider')()
  File "e:\python\lib\site-packages\pyspider\run.py", line 754, in main
    cli()
  File "e:\python\lib\site-packages\click\core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "e:\python\lib\site-packages\click\core.py", line 697, in main
    rv = self.invoke(ctx)
  File "e:\python\lib\site-packages\click\core.py", line 1066, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "e:\python\lib\site-packages\click\core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "e:\python\lib\site-packages\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "e:\python\lib\site-packages\click\decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "e:\python\lib\site-packages\pyspider\run.py", line 497, in all
    ctx.invoke(webui, **webui_config)
  File "e:\python\lib\site-packages\click\core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "e:\python\lib\site-packages\click\decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "e:\python\lib\site-packages\pyspider\run.py", line 384, in webui
    app.run(host=host, port=port)
  File "e:\python\lib\site-packages\pyspider\webui\app.py", line 59, in run
    from .webdav import dav_app
  File "e:\python\lib\site-packages\pyspider\webui\webdav.py", line 216, in <module>
    dav_app = WsgiDAVApp(config)
  File "e:\python\lib\site-packages\wsgidav\wsgidav_app.py", line 135, in __init__
    _check_config(config)
  File "e:\python\lib\site-packages\wsgidav\wsgidav_app.py", line 119, in _check_config
    raise ValueError("Invalid configuration:\n  - " + "\n  - ".join(errors))
ValueError: Invalid configuration:
  - Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.

原因分析:WsgiDAV 使用了新版本 pre-release 3.0.0(WsgiDAV 是一個用 Python 開發的通用 WebDAV 服務器,基於 WSGI 運行,支持 SSL)


解決方法一:將 WsgiDAV 版本降級到 2.4.1版本,使用命令 pip install wsgidav==2.4.1 安裝即可


解決方法二:在 Python 安裝路徑下,找到 webdav.py 文件,比如我的路徑爲:E:\Python\Lib\site-packages\pyspider\webui\webdav.py

定位到第 209 行,找到如下代碼:

'domaincontroller': NeedAuthController(app),

修改爲如下代碼並保存:

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

01

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章