我无法让这个工作。我不断添加模块,每次都找不到新的模块。为什么这段代码不能在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'
答案 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)
我希望它能起作用,因为它对我有用。
答案 5 :(得分:0)
我遇到了同样的问题。 我的python版本是3.7.3,并且正在使用Werkzeug版本1.0.1
我将Werkzeug版本降级为0.16.0,并且可以正常工作
pip install --upgrade Werkzeug==0.16.0