win10下安裝pyspider有很多坑,爲了記錄下來,專門新建了虛擬環境從頭安裝加以記錄,所有出錯信息和截圖均來自安裝過程,不對你的症請找其他大夫,不喜勿噴。
安裝:
pip install pyspider
啓動:
pyspider
報錯:
File "d:\Python\virtualEnv\env10\lib\site-packages\pyspider\webui\app.py", line 59, in run
from .webdav import dav_app
File "d:\Python\virtualEnv\env10\lib\site-packages\pyspider\webui\webdav.py", line 216, in <module>
dav_app = WsgiDAVApp(config)
File "d:\Python\virtualEnv\env10\lib\site-packages\wsgidav\wsgidav_app.py", line 134, in __init__
_check_config(config)
File "d:\Python\virtualEnv\env10\lib\site-packages\wsgidav\wsgidav_app.py", line 118, in _check_config
raise ValueError("Invalid configuration:\n - " + "\n - ".join(errors))
ValueError: Invalid configuration:
- Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.
原因:wsgidav版本太高了,默認安裝3.X版本,重新安裝2.X:
python -m pip uninstall wsgidav
python -m pip install wsgidav==2.4.1
啓動,掛起,執行不下去,重啓電腦,在啓動pyspider,再報新錯:
File "d:\Python\virtualEnv\env10\lib\site-packages\pyspider\run.py", line 497, in all
ctx.invoke(webui, **webui_config)
File "d:\Python\virtualEnv\env10\lib\site-packages\click\core.py", line 555, in invoke
return callback(*args, **kwargs)
File "d:\Python\virtualEnv\env10\lib\site-packages\click\decorators.py", line 17, in new_func
return f(get_current_context(), *args, **kwargs)
File "d:\Python\virtualEnv\env10\lib\site-packages\pyspider\run.py", line 384, in webui
app.run(host=host, port=port)
File "d:\Python\virtualEnv\env10\lib\site-packages\pyspider\webui\app.py", line 64, in run
from werkzeug.wsgi import DispatcherMiddleware
ImportError: cannot import name 'DispatcherMiddleware' from 'werkzeug.wsgi' (d:\program files\python37\lib\site-packages\werkzeug\wsgi.py)
原因:werkzeug版本高了,DispatcherMiddleware這個類已經不存在了,因此重新安裝小版本:
python -m pip uninstall werkzeug
python -m pip install werkzeug=0.15
啓動,掛起,執行不下去,重啓電腦,啓動pyspider,OK了