File "c:\users\13733\appdata\local\programs\python\python37\lib\site-packages\pyspider\run.py", line 231
async=True, get_object=False, no_input=False): ^
參考:https://segmentfault.com/q/1010000015188569
Command "python setup.py egg_info" failed with error code 10 in C:\Users\cc\AppData\Local\Temp\pip-build-ietfuwf2\pycurl
參考:https://blog.csdn.net/shawroad88/article/details/82222811
ValueError: Invalid configuration:
- Deprecated option 'domaincontroller': use 'http_authenticator.domain_controller' instead.
參考:https://www.cnblogs.com/wisir/p/10587938.html
命令行pyspider,之后一直卡在result_worker starting...
參考:https://segmentfault.com/q/1010000007682102/a-1020000007769713(把防火牆關了,以及再開一個cmd,運行pyspider,再關掉原來那個cmd)#實測替換完run.py、tornado_fetcher.py、app.py的async為shark,注意只替換單詞為async的,async_father,Async不用替換,運行spider all 如果出錯 安裝pip install wsgidav==0.16.0。最后出現result_worker starting...,這個命令行不關閉,在管理員身份打開一個cmd,運行spider all ,實測成功運行。
d:\python35\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)
這個問題,可以忽略,不影響使用。
一、概述
本機已經安裝好python3.7,現做測試,需要在開發機上安裝pyspider,基於windows下的安裝遇到一些坑,特此記錄
二、安裝步驟
pip install pyspider
此過程一般不會有問題,因為pip會自動安裝依賴包,但能不能正常運行起來,它管不了那么多了哦~
三、開始填坑
1、執行 pyspider all,立馬報錯:
Traceback (most recent call last): File "D:\Program Files\python37\Scripts\pyspider-script.py", line 11, in <module> load_entry_point('pyspider==0.3.10', 'console_scripts', 'pyspider')() File "d:\program files\python37\lib\site-packages\pkg_resources\__init__.py", line 487, in load_entry_point return get_distribution(dist).load_entry_point(group, name) File "d:\program files\python37\lib\site-packages\pkg_resources\__init__.py", line 2728, in load_entry_point return ep.load() File "d:\program files\python37\lib\site-packages\pkg_resources\__init__.py", line 2346, in load return self.resolve() File "d:\program files\python37\lib\site-packages\pkg_resources\__init__.py", line 2352, in resolve module = __import__(self.module_name, fromlist=['__name__'], level=0) File "d:\program files\python37\lib\site-packages\pyspider\run.py", line 231 async=True, get_object=False, no_input=False): ^ SyntaxError: invalid syntax
這是因為python3.5開始把async和await設為關鍵字了,這里作為參數名與關鍵字沖突了,因此找到對應的py文件,將async修改為其他名稱,我修改為asyn。在以下幾個文件中存在:
pyspider->run.py、pyspider->fetcher->tornado_fetcher.py、webui>app.py。
2、再執行,再報錯:
File "d:\program files\python37\lib\site-packages\pyspider\webui\app.py", line 59, in run from .webdav import dav_app File "d:\program files\python37\lib\site-packages\pyspider\webui\webdav.py", line 216, in <module> dav_app = WsgiDAVApp(config) File "d:\program files\python37\lib\site-packages\wsgidav\wsgidav_app.py", line 134, in __init__ _check_config(config) File "d:\program files\python37\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版本太高了,重新安裝一下:
python -m pip uninstall wsgidav
python -m pip install wsgidav==2.4.1
至此,有些小伙伴就應該可以正常啟動pyspider了,我的環境還遇到以下錯誤:
3、再報錯:
File "d:\program files\python37\lib\site-packages\pyspider\run.py", line 497, in all ctx.invoke(webui, **webui_config) File "d:\program files\python37\lib\site-packages\click\core.py", line 555, in invoke return callback(*args, **kwargs) File "d:\program files\python37\lib\site-packages\click\decorators.py", line 17, in new_func return f(get_current_context(), *args, **kwargs) File "d:\program files\python37\lib\site-packages\pyspider\run.py", line 384, in webui app.run(host=host, port=port) File "d:\program files\python37\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.16
為什么是0.16版本?我是再卸載后,暫不安裝,直接執行pyspider時,錯誤提示信息中顯示了最低版本為0.16:)
4、正常運行,截圖紀念
————————————————
版權聲明:本文為CSDN博主「paulluo0739」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/paulluo0739/java/article/details/104255877