Python flask#u上载:ImportError:无法导入名称';安全文件名';
我想创建一个表单,允许使用flask表单发送带有描述的图片。 我尝试使用此视频: 但我在启动app.py时遇到了麻烦:Python flask#u上载:ImportError:无法导入名称';安全文件名';,python,flask,python-3.6,flask-sqlalchemy,flask-uploads,Python,Flask,Python 3.6,Flask Sqlalchemy,Flask Uploads,我想创建一个表单,允许使用flask表单发送带有描述的图片。 我尝试使用此视频: 但我在启动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, IMAG
➜ 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'
我的导入和配置如下所示:
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
我无法解决这个问题,你知道我能做什么吗?根据,这是一个与workzeug当前版本1.0.0相关的错误。它已合并,但尚未在pypi中发布。
目前已知的解决方法是从werkzeug=1.0.0
降级到werkzeug==0.16.0
为此,您只需运行以下命令:
pip install -U Werkzeug==0.16.0
查看werkzeug的发行说明,有一个版本
0.16.1
,但在bug报告中,没有证据表明使用该版本会有任何帮助。我无法解决flask upload的问题,但遵循了这个视频,它允许我做我想做的事情:在flask\u uploads.py
改变
from werkzeug import secure_filename,FileStorage
到
您正在使用损坏的
Flask上载版本
不幸的是,包的维护者决定不向PyPi发布包的新版本
您可以使用Flask Reuploaded
作为替代品,解决您的问题
我最后把一个
-egit://github.com/maxcountryman/flask-uploads.git#egg=elasticutils
在我的
requirements.txt
文件中,从git获得flask上传的最新版本。感谢您的回答,我这样做了:成功卸载Werkzeug-1.0.0成功安装Werkzeug-0.16.0,但我仍然得到与导入错误完全相同的错误:无法导入名称“secure\u filename”您可以尝试安装此库吗,看看它是否解决了:pip install Flask Uploads
它已经安装(它已经满足打印要求).对我的案子有用,谢谢。
from werkzeug import secure_filename,FileStorage
from werkzeug.utils import secure_filename
from werkzeug.datastructures import FileStorage