Win10 + python3.6 安装pyspider
安装phantomjs
下载地址:https://phantomjs.org/download.html 下载的文件解压缩之后,bin文件夹下,找到phantomjs.exe,将其复制到python的scripts文件夹下(或为其配置环境变量路径),即为安装。
安装redis
windows系统中安装redis 下载地址:https://github.com/microsoftarchive/redis/releases 下载版本:3.2.100 自行安装即可。
安装redis-py
python中安装redis库
pip3 install redis
安装pycurl
需手动下载,根据python版本下载对应版本,我的是python3.6的32位。 据说7.44.1版本不稳定,因此遵循前辈们的7.43.0版本 下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl 我下载的是:pycurl?7.43.0.4?cp36?cp36m?win32.whl 随后安装:
pip3 install D:\安装程序\Python\pycurl-7.43.0.4-cp36-cp36m-win32.whl
安装pysider
pip3 install pyspider
相关错误
基本和前辈们遇到的问题一样:
错误1:SyntaxError: invalid syntax
问题:
async=True, get_object=False, no_input=False):
^
SyntaxError: invalid syntax
办法: 将pyspider文件夹下的相关代码修改: 我的路径为: C:\Users\user_name\AppData\Local\Programs\Python\Python36-32\Lib\site-packages/pyspider/run.py C:\Users\user_name\AppData\Local\Programs\Python\Python36-32\Lib\site-packages/pyspider/fetcher/tornado_fetcher.py C:\Users\user_name\AppData\Local\Programs\Python\Python36-32\Lib\site-packages/pyspider/webui/app.py 可以用记事本打开该文件,然后ctrl+f查找async,再用flask替换所有的async,不要替换Async,最后保存即可
错误2:werkzeug 版本太高
问题:
.ImportError: cannot import name 'DispatcherMiddleware' from 'werkzeug.wsgi' (/usr/local/lib/python3.8/dist-packages/werkzeug/wsgi.py
办法: 降级werkzeug 版本 先卸载高版本:
pip3 uninstall werkzeug
再安装低版本:
pip3 install werkzeug==0.16.1
错误3:flask版本太高
问题:
ImportError: cannot import name 'ContextVar' from 'werkzeug.local' (/usr/local/lib/python3.8/dist-packages/werkzeug/local.py
办法: 降级flask版本 先卸载高版本:
pip3 uninstall flask
再安装低版本:
pip3 install flask==1.0
错误4:wsgidav 版本太高
问题:
TypeError: Can't instantiate abstract class ScriptProvider with abstract methods get_resource_inst
办法: 降级wsgidav版本 先卸载高版本:
pip3 uninstall wsgidav
再安装低版本:
pip3 install wsgidav==2.4.1
错误5:pyspider all无法全部启动
问题: pyspider all之后只启动了2行:
phantomjs fecther running on port 25555
[I 180629 07:08:29 result_worker:49] result_worker starting…
办法: 在windows系统服务中重启redis,再执行pyspider all
结束
祝好运!
|