python3.9 安装 pyspider

news/2024/11/7 21:37:12/

安装pyspider   

 pip  install pyspider

直接报错
Please specify --curl-dir=/path/to/built/libcurl  

于是从PythonLibs官网 中获取依赖并自行下载到本地 

下载与3.9对应的

执行安装

pip install D:\下载\ad3-2.2.1-cp39-cp39-win32.whl

安装成功之后 执行 pip install pyspider ,提示安装成功,运行 pyspider 报错。

Traceback (most recent call last):File "D:\Python39\lib\runpy.py", line 197, in _run_module_as_mainreturn _run_code(code, main_globals, None,File "D:\Python39\lib\runpy.py", line 87, in _run_codeexec(code, run_globals)File "D:\Python39\Scripts\pyspider.exe\__main__.py", line 4, in <module>File "D:\Python39\lib\site-packages\pyspider\run.py", line 231async=True, get_object=False, no_input=False):^
SyntaxError: invalid syntax

打开run.py  把async 替换成async1

继续执行pyspider ,还是报错

aceback (most recent call last):File "D:\Python39\lib\threading.py", line 980, in _bootstrap_innerself.run()File "D:\Python39\lib\threading.py", line 917, in runself._target(*self._args, **self._kwargs)File "D:\Python39\lib\site-packages\click\core.py", line 760, in invokereturn __callback(*args, **kwargs)File "D:\Python39\lib\site-packages\click\decorators.py", line 26, in new_funcreturn f(get_current_context(), *args, **kwargs)File "D:\Python39\lib\site-packages\pyspider\run.py", line 236, in fetcherFetcher = load_cls(None, None, fetcher_cls)File "D:\Python39\lib\site-packages\pyspider\run.py", line 48, in load_clsreturn utils.load_object(value)File "D:\Python39\lib\site-packages\pyspider\libs\utils.py", line 369, in load_objectmodule = __import__(module_name, globals(), locals(), [object_name])File "D:\Python39\lib\site-packages\pyspider\fetcher\__init__.py", line 1, in <module>from .tornado_fetcher import FetcherFile "D:\Python39\lib\site-packages\pyspider\fetcher\tornado_fetcher.py", line 81def __init__(self, inqueue, outqueue, poolsize=100, proxy=None, async=True):

打开  tornado_fetcher.py   把async 替换成async1 ,在执行pyspider,成功了,不再报错如下:

遇到如下错误:

File "\python39\lib\site-packages
\wsgidav\wsgidav_app.py", line 135, in __init___check_config(config)File "python39\lib\site-packages
\wsgidav\wsgidav_app.py", line 119, in _check_configraise ValueError("Invalid configuration:\n  - " + "\n  - ".join(errors))
ValueError: Invalid configuration:- Deprecated option 'domaincontroller': use 'http_authenticator.domain_control

 解决方案:

找到 文件 找到domaincontroller,这一行按照提示修改,但是依然报错,我就直接删除了,删除之后启动就报如下错误。

TypeError: Can't instantiate abstract class ScriptProvider with abstract methods get_resource_inst

我看到有的帖子说是wsgidav 版本太高,是的就是版本高了,高版本中的方法变了,于是乎复制  getResourceInst  改名为get_resource_inst 增加一下实现

 

 于是重新执行 pyspider all 报错如下:

  File "D:\Python39\lib\runpy.py", line 197, in _run_module_as_mainreturn _run_code(code, main_globals, None,File "D:\Python39\lib\runpy.py", line 87, in _run_codeexec(code, run_globals)File "D:\Python39\Scripts\pyspider.exe\__main__.py", line 7, in <module>File "D:\Python39\lib\site-packages\pyspider\run.py", line 754, in maincli()File "D:\Python39\lib\site-packages\click\core.py", line 1130, in __call__return self.main(*args, **kwargs)File "D:\Python39\lib\site-packages\click\core.py", line 1055, in mainrv = self.invoke(ctx)File "D:\Python39\lib\site-packages\click\core.py", line 1657, in invokereturn _process_result(sub_ctx.command.invoke(sub_ctx))File "D:\Python39\lib\site-packages\click\core.py", line 1404, in invokereturn ctx.invoke(self.callback, **ctx.params)File "D:\Python39\lib\site-packages\click\core.py", line 760, in invokereturn __callback(*args, **kwargs)File "D:\Python39\lib\site-packages\click\decorators.py", line 26, in new_funcreturn f(get_current_context(), *args, **kwargs)File "D:\Python39\lib\site-packages\pyspider\run.py", line 497, in allctx.invoke(webui, **webui_config)File "D:\Python39\lib\site-packages\click\core.py", line 760, in invokereturn __callback(*args, **kwargs)File "D:\Python39\lib\site-packages\click\decorators.py", line 26, in new_funcreturn f(get_current_context(), *args, **kwargs)File "D:\Python39\lib\site-packages\pyspider\run.py", line 384, in webuiapp.run(host=host, port=port)File "D:\Python39\lib\site-packages\pyspider\webui\app.py", line 64, in runfrom werkzeug.dispatcher import DispatcherMiddleware
ModuleNotFoundError: No module named 'werkzeug.dispatcher'

依然是安装了新版本之后依赖包找不到了,于是找到 site-packages\werkzeug 安装目录发现werkzeug\middleware 下有个dispatcher.py 中有想要的类,于是就把webui 的引用包改了一下

 

 

        if dav_app:from werkzeug.middleware.dispatcher import DispatcherMiddlewareapplication = DispatcherMiddleware(application, {'/dav': dav_app})container = tornado.wsgi.WSGIContainer(application)

于是乎就愉快的跑起来了。

 经历两天奋战终于搞定了。

本次安装思路就是:安装新版本,遇到依赖报错就去找新版本的包中类库所在的路径,修改对应的依赖文件中的依赖。但是安装之后修改过的痕迹被覆盖的话就得重新搞了。这个安装方式适合有一定的开发经验的朋友。

 

 


http://www.ppmy.cn/news/514854.html

相关文章

RSS阅读器推荐

http://www.feeddemon.com/ Windows&#xff0c;Free &#xff08;完&#xff09; 转载于:https://www.cnblogs.com/lishidefengchen/p/10907774.html

RSS 阅读器

Win/Mac 1.Fluent Reader 首页下载使用 添加 订阅源 安卓端 1.FeedMe 阅读器 地址&#xff1a; https://play.google.com/store/apps/details?idcom.seazon.feedme&glUS

好用的RSS阅读器-My RSS Reader

我对好用的RSS阅读器定义是 必须是免费的必须可以自定义订阅源必须是简洁的&#xff0c;不要华而不实必须有夜间模式&#xff0c;毕竟保护眼睛是头等大事 基于以上几点&#xff0c;开发了 My RSS Reader 。 目前已经发布了 Android版本&#xff0c;IOS版本也正在开发中。 欢…

RSS 阅读器及源

参考资料 万物皆可 RSS 文档 安装及使用RSSHub 1. RSS 阅读器及源 2. 我有特别的 RSS 使用技巧 3. Fatecore Studio第三弹&#xff1a;irreader 4. 安装Chrome插件(Tampermonkey,RSSHelper)&#xff0c;可发现网页使用RSS源 5. 打造属于自己的RSS源 6. FeedDemon Pro 专业版免费…

手机RSS资源地,各大网站RSS源地址订阅

百度新闻 分类焦点新闻 国内焦点 http://news.baidu.com/n?cmd1&classcivilnews&tnrss&sub0 时政焦点 http://news.baidu.com/n?cmd1&classshizheng&tnrss&sub0 港澳台焦点 http://news.baidu.com/n?cmd1&classgangaotai&tnrss&sub0 国…

RSS 阅读

https://rome.dev.java.net/ 阅读 http://htmlparser.sourceforge.net/ 分析html代码,可以分析出rss地址

vue-router 重复调用 push 函数跳转到同一个路由地址报错的问题

终端报错信息 解决方案 // src/router/index.js 路由模块 Vue.use(VueRouter)// 把下面的代码粘贴到路由模块中对应的位置&#xff0c;即可防止路由报错的问题 const originalPush VueRouter.prototype.push // 覆盖掉 vue-router 原生的 push VueRouter.prototype.push fu…