flask_上载:导入错误:无法导入名称“secure_filename”

2024-06-13 02:53:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想创建一个表单,允许使用flask表单发送带有描述的图片。 我试着使用这个视频:https://www.youtube.com/watch?v=Exf8RbgKmhM

但我在启动app.py时遇到了麻烦:

➜  website git:(master) ✗ python3.6 app.py
Traceback (most recent call last):
  File "app.py", line 10, in <module>
    from flask.ext.uploads import UploadSet, configure_uploads, IMAGES
ModuleNotFoundError: No module named 'flask.ext'

我不得不更换 flask.ext.uploads被{} 但现在我明白了:

Traceback (most recent call last):
  File "app.py", line 10, in <module>
    from flask_uploads import UploadSet, configure_uploads, IMAGES
  File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask_uploads.py", line 26, in <module>
    from werkzeug import secure_filename, FileStorage
ImportError: cannot import name 'secure_filename'

我的导入和配置如下所示:

from datetime import datetime
from flask_sqlalchemy import SQLAlchemy
from flask import Flask, session, render_template, url_for, redirect, flash, request
from wtforms import Form, fields,TextField, StringField, PasswordField, BooleanField,validators
from wtforms.validators import InputRequired, Email, Length, DataRequired
from flask_wtf import FlaskForm
from flask_uploads import UploadSet, configure_uploads, IMAGES
from flask_login import LoginManager, UserMixin, login_user, login_required, logout_user, current_user

我解决不了这个问题,你知道我能做什么吗


Tags: infrompyimportappflaskconfigureline
3条回答

根据this issue,这是一个与workzeug当前版本1.0.0相关的bug。它已合并,但尚未在pypi中发布。 到目前为止,我们知道的解决方法是从werkzeug=1.0.0降级到werkzeug==0.16.0

为此,您只需运行以下命令:

pip install -U Werkzeug==0.16.0

查看werkzeug的发行说明,有一个版本0.16.1,但在bug报告中,没有证据表明使用该版本会有任何帮助

您使用的是Flask-Uploads的损坏版本

不幸的是,包的维护者决定不向PyPi发布包的新版本

您可以使用Flask-Reuploaded作为替代品,这可以解决您的问题

https://pypi.org/project/Flask-Reuploaded/

flask_uploads.py

改变

from werkzeug import secure_filename,FileStorage

from werkzeug.utils import secure_filename
from werkzeug.datastructures import  FileStorage

相关问题 更多 >