【问题标题】:Flask-Uploads gives AttributeError?Flask-Uploads 给出 AttributeError?
【发布时间】:2016-02-23 18:31:49
【问题描述】:
from flask import Flask
from flask.ext.uploads import UploadSet, configure_uploads, IMAGES

app = Flask(__name__)

app.config['UPLOADED_PHOTOS_DEST'] = '/home/kevin'
photos = UploadSet('photos', IMAGES)

configure_uploads(app, (photos,))

上面是我的代码,但是它给了我以下错误:

Traceback (most recent call last):
  File "./main.py", line 10, in <module>
    configure_uploads(app, (photos,))
  File "/usr/lib/python3.5/site-packages/flaskext/uploads.py", line 197, in configure_uploads
    should_serve = any(s.base_url is None for s in set_config.itervalues())
AttributeError: 'dict' object has no attribute 'itervalues'

我正在使用 Flask 0.10.1Flask-Uploads 0.1.3,我的代码的哪一部分不正确?

【问题讨论】:

    标签: python python-3.x flask python-3.5 flask-uploads


    【解决方案1】:

    dict.itervalues() 仅在 python2.x 中,我猜烧瓶上传还不支持 3.x,setup.py 也没有说它们支持 3.x

    【讨论】:

    • 真的吗?我通过pip安装了它,没有错误或警告,我也没有在文档中找到它...所以除非我使用python2运行脚本,否则我无法正确使用flask-uploads ?
    • 安装成功不代表可以使用。可惜python3.x不支持dict.itervalues(),大家可以自己试试,怕是用不了。也许你可以在那里提出问题,等待作者移植它。
    【解决方案2】:

    如您所见,由于调用了dict.itervalues(),Flask-Uploads 0.1.3 不支持 Python 3。

    我最近接任了 Flask-Uploads 项目的维护者,并在this commit 中接受了修复问题的 PR。

    包含此修复的 0.2.0 版本尚未推送到 Pypi,但在此之前,您可以直接从 GitHub 安装 Python 3 兼容版本:

    pip install git+https://git@github.com/jeffwidman/flask-uploads.git
    

    如果您遇到任何问题,问题跟踪器在这里:https://github.com/jeffwidman/flask-uploads/issues

    【讨论】:

    • 很酷,谢谢!所以这意味着 Flask-Uploads 0.2.0 现在支持 Python 3?
    • 是的,我实际上并没有标记该版本,因为我只是进行了一系列更改以使其现代化,我想让一些人尝试一下,并确保没有漏掉任何东西在我真正把它推到 Pypi 之前。所有测试都顺利通过,但我刚开始维护它,所以不确定测试套件的可靠性。因此,如果遇到任何问题,请尝试并提出问题。
    • 啊,刚刚试了一下,效果很好!感谢新版本的 Flask-Uploads :D
    • 太棒了。谢谢你告诉我。
    • 请将此推送到 PyPi。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多