错误信息
Traceback (most recent call last):
File "/Users/lifeng/python-projects/Test/pythonScripts/bin/run/runModule.py", line 8, in <module>
from robobrowser import RoboBrowser
File "/Users/lifeng/python-virtualenv/venv/lib/python3.9/site-packages/robobrowser/__init__.py", line 3, in <module>
from .browser import RoboBrowser
File "/Users/lifeng/python-virtualenv/venv/lib/python3.9/site-packages/robobrowser/browser.py", line 8, in <module>
from werkzeug import cached_property
ImportError: cannot import name 'cached_property' from 'werkzeug' (/Users/lifeng/python-virtualenv/venv/lib/python3.9/site-packages/werkzeug/__init__.py)
解决方法
这个报错就是安装的第三方库它又依赖这个包,但是在运行的时候又没有导入这个包,所以才引起的报错;从异常信息可以看到有很明显的提示信息,我们只需要在这个路径中的__init__.py
文件中引入from werkzeug.utils import cached_property
即可,示例如下:
- 首先找到这个目录
(venv) lifeng site-packages % cd werkzeug
(venv) lifeng werkzeug % ls
__init__.py formparser.py test.py
__pycache__ http.py testapp.py
_internal.py local.py urls.py
_reloader.py middleware user_agent.py
datastructures.py py.typed useragents.py
datastructures.pyi routing.py utils.py
debug sansio wrappers
exceptions.py security.py wsgi.py
filesystem.py serving.py
- 其次看到
init.py
文件,去编辑打开它之后引入指定包
(venv) lifeng werkzeug % vi __init__.py
- 因为是
Mac
电脑,所以我直接vi
打开文件,进入编辑层后,要先i
下,然后在输入需要引入的包,最后别忘了wq
保存下,示例如下:
from .serving import run_simple as run_simple
from .test import Client as Client
from .wrappers import Request as Request
from .wrappers import Response as Response
from werkzeug.utils import cached_property # 这是引入的包
__version__ = "2.0.2"
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
:wq
保存完成后,再去运行刚才报错的代码,发现运行成功了。这里是亲测有效
以上总结或许能帮助到你,或许帮助不到你,但还是希望能帮助到你,如有疑问、歧义,直接私信留言会及时修正发布;非常期待你的点赞和分享哟,谢谢!
未完,待续…
一直都在努力,希望您也是!
![](https://i-blog.csdnimg.cn/blog_migrate/314eb08dcdc3cf7ce16089176b310ba9.jpeg)