Python3'无法导入名称&c; cached_property'

时间:2017-09-27 21:03:00

标签: python python-3.x

我无法让这个工作。我不断添加模块,每次都找不到新的模块。为什么这段代码不能在Python3.6中运行?

代码:

from robobrowser import robobrowser
from bs4 import BeautifulSoup
import urllib2 
import cookielib
from werkzeug import werkzeug
from cached_property import cached_property

cj = cookielib.CookieJar()
br = robobrowser.Browser()
br.set_cookiejar(cj)
br.open("https://www.cbssports.com/login")

br.select_form(nr=0)
br.form['userid'] = 'steveb1164'
br.form['password'] = ''
br.submit()

print(br.response().read())

执行命令

RESTART: C:/Users/Steve/AppData/Local/Programs/Python/Python36-32/CBSlogin.py 
Traceback (most recent call last):
  File "C:/Users/Steve/AppData/Local/Programs/Python/Python36-32/CBSlogin.py", line 1, in <module>
    from robobrowser import robobrowser
  File "C:\Users\Steve\AppData\Local\Programs\Python\Python36-32\lib\site-packages\robobrowser\robobrowser\__init__.py", line 3, in <module>
    from .browser import RoboBrowser
  File "C:\Users\Steve\AppData\Local\Programs\Python\Python36-32\lib\site-packages\robobrowser\robobrowser\browser.py", line 8, in <module>
    from werkzeug import cached_property
ImportError: cannot import name 'cached_property'

6 个答案:

答案 0 :(得分:21)

我通过在Flask导入之前插入这些行来使werkzeug应用程序在Python 3.6中运行:

import werkzeug
werkzeug.cached_property = werkzeug.utils.cached_property

答案 1 :(得分:8)

如果您在使用Flask Rest-Plus时看到此消息,则开发团队会遇到问题

https://github.com/noirbizarre/flask-restplus/issues/777

观察到:

“暂时降级到Werkzeug到0.16.0解决了该问题。”

答案 2 :(得分:3)

反应迟了一点,但我可能已经找到了解决方法。

您需要将werkzeug导入缓存的属性重命名为以下内​​容:

from werkzeug.utils import cached_property

希望这会有所帮助!

答案 3 :(得分:0)

尝试重新安装werkzeug包。

pip uninstall Werkzeug
pip install Werkzeug

答案 4 :(得分:0)

  1. 运行以下命令来卸载werkzeug软件包- pip卸载werkzeug
  2. 运行以下命令重新安装werkzeug软件包- pip install werkzeug
  3. 添加 导入werkzeug werkzeug.cached_property = werkzeug.utils.cached_property 到您的代码。

我希望它能起作用,因为它对我有用。

答案 5 :(得分:0)

我遇到了同样的问题。 我的python版本是3.7.3,并且正在使用Werkzeug版本1.0.1

我将Werkzeug版本降级为0.16.0,并且可以正常工作

pip install --upgrade Werkzeug==0.16.0