简介
本以为一个pip install的事,没想到遇到3个小坑才顺利安装完.
小坑001:安装时报错:Please specify --curl-dir=/path/to/built/libcurl
windows需要额外手动安装
PycURL
点击上面链接找到适合自己系统跟python版本的文件用pip安装.
本次使用的机器是win7 64位,python3.7 32位,选择的文件见下面示例语句
pip install your_download_file_full_path_name
eg:
pip install G:\DevelopSetup\pycurl-7.43.0.3-cp37-cp37m-win32.whl
小坑002:运行时报错:async=True, get_object=False, no_input=False):SyntaxError: invalid syntax
pip install pyspider
报错.
async=True, get_object=False, no_input=False):
^
SyntaxError: invalid syntax
搜索引擎走一波
原因:
因为python3.7把async作为关键字了,所以导致的报错.
解决方案:
用PyCharm(或者其他支持全项目查询/替换的IDE)打开你Python安装的spider路径
供参考,本人路径如下
C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\Lib\site-packages\pyspider
批量替换async->其他不被项目使用的变量名为了方便回退替换(比如我已经替换完,将async->aasync了,见下图)
替换时建议勾选匹配全词words和匹配大小写Mach case,提高准确率避免替换多了不必要的内容.
小坑003:运行时报错: - Deprecated option ‘domaincontroller’: use ‘http_authenticator.domain_controller’ instead.
启动pyspider报错.
raise ValueError("Invalid configuration:\n - " + "\n - ".join(errors))
ValueError: Invalid configuration:
Deprecated option ‘domaincontroller’: use ‘domain_controller’ instead.
原因:
spider依赖库版本问题
解决方案:
继续用Pycharm编辑项目中的webdav.py文件
连按两下shift,输入webdav.py
不用pycharm直接找到文件编辑也OK
参考路径: …/python3.7/site-packages/pyspider/webui/webdav.py
'domaincontroller': NeedAuthController(app),
#修改为:
'http_authenticator':{ 'HTTPAuthenticator':NeedAuthController(app) },
之后再启动pyspider成功~