问题一

pyspider启动错误解决(Python 3.7)-LMLPHP

安装好pyspider之后,在启动的时候,报出上图错误。

原因

asyncawaitpython3.7 开始已经加入保留关键字中. 参考: What’s New In Python 3.7, 所以async不能作为函数的参数名.

解决办法

1.打开安装Python的位置:python位置\Lib\site-packages\pyspider

参照地址:D:\Anaconda\Lib\site-packages\pyspider

2.修改下列python文件中的asyncshark(全部替换)

  1. run.py
  2. fetcher\tornado_fetcher.py
  3. webui\app.py

问题二

管理权限打开命令窗口,运行pyspider命令,报下列错

d:\anaconda\lib\site-packages\pyspider\libs\utils.py:: FutureWarning: timeout is not supported on your platform.
warnings.warn("timeout is not supported on your platform.", FutureWarning)
[I :: result_worker:] result_worker starting...
phantomjs fetcher running on port
[I :: processor:] processor starting...
[I :: scheduler:] scheduler starting...
[I :: scheduler:] in 5m: new:,success:,retry:,failed:
[I :: tornado_fetcher:] fetcher starting...
[I :: scheduler:] scheduler.xmlrpc listening on 127.0.0.1:
[I :: run:] phantomjs exited.
[I :: app:] webui exiting...
[I :: tornado_fetcher:] fetcher exiting...
[I :: scheduler:] scheduler exiting...
[I :: result_worker:] result_worker exiting...
[I :: processor:] processor exiting...
Traceback (most recent call last):
File "d:\anaconda\lib\runpy.py", line , in _run_module_as_main
"__main__", mod_spec)
File "d:\anaconda\lib\runpy.py", line , in _run_code
exec(code, run_globals)
File "D:\Anaconda\Scripts\pyspider.exe\__main__.py", line , in <module>
File "d:\anaconda\lib\site-packages\pyspider\run.py", line , in main
cli()
File "d:\anaconda\lib\site-packages\click\core.py", line , in __call__
return self.main(*args, **kwargs)
File "d:\anaconda\lib\site-packages\click\core.py", line , in main
rv = self.invoke(ctx)
File "d:\anaconda\lib\site-packages\click\core.py", line , in invoke
return Command.invoke(self, ctx)
File "d:\anaconda\lib\site-packages\click\core.py", line , in invoke
return ctx.invoke(self.callback, **ctx.params)
File "d:\anaconda\lib\site-packages\click\core.py", line , in invoke
return callback(*args, **kwargs)
File "d:\anaconda\lib\site-packages\click\decorators.py", line , in new_func
return f(get_current_context(), *args, **kwargs)
File "d:\anaconda\lib\site-packages\pyspider\run.py", line , in cli
ctx.invoke(all)
File "d:\anaconda\lib\site-packages\click\core.py", line , in invoke
return callback(*args, **kwargs)
File "d:\anaconda\lib\site-packages\click\decorators.py", line , in new_func
return f(get_current_context(), *args, **kwargs)
File "d:\anaconda\lib\site-packages\pyspider\run.py", line , in all
ctx.invoke(webui, **webui_config)
File "d:\anaconda\lib\site-packages\click\core.py", line , in invoke
return callback(*args, **kwargs)
File "d:\anaconda\lib\site-packages\click\decorators.py", line , in new_func
return f(get_current_context(), *args, **kwargs)
File "d:\anaconda\lib\site-packages\pyspider\run.py", line , in webui
app.run(host=host, port=port)
File "d:\anaconda\lib\site-packages\pyspider\webui\app.py", line , in run
from .webdav import dav_app
File "d:\anaconda\lib\site-packages\pyspider\webui\webdav.py", line , in <module>
dav_app = WsgiDAVApp(config)
File "d:\anaconda\lib\site-packages\wsgidav\wsgidav_app.py", line , in __init__
_check_config(config)
File "d:\anaconda\lib\site-packages\wsgidav\wsgidav_app.py", line , 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.x导致

解决办法

降低WsgiDAV版本,命令窗口运行

python -m pip install wsgidav==2.4.

pyspider启动错误解决(Python 3.7)-LMLPHP

管理权限打开命令窗口,运行pyspider命令,成功!

pyspider启动错误解决(Python 3.7)-LMLPHP

pyspider启动错误解决(Python 3.7)-LMLPHP

05-11 15:34
查看更多