Python 获得“;KeyError:<;0x00000191FA23ABA8处的flask.cli.ScriptInfo对象>”;运行时“;heroku local:运行flask deploy”;
从Flask Web Development 17.4.2学习并使用Heroku local test,在执行Python 获得“;KeyError:<;0x00000191FA23ABA8处的flask.cli.ScriptInfo对象>”;运行时“;heroku local:运行flask deploy”;,python,heroku,flask,Python,Heroku,Flask,从Flask Web Development 17.4.2学习并使用Heroku local test,在执行Heroku local:run Flaskdeployment时发生以下错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\KodX\AppData\Local\Programs\Python\Python37\lib\runpy.py”,第193行,在运行模块中 “\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
Heroku local:run Flask
deployment时发生以下错误:
回溯(最近一次呼叫最后一次):
文件“C:\Users\KodX\AppData\Local\Programs\Python\Python37\lib\runpy.py”,第193行,在运行模块中
“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
文件“C:\Users\KodX\AppData\Local\Programs\Python\Python37\lib\runpy.py”,第85行,在运行代码中
exec(代码、运行\全局)
文件“F:\flasky\venv\Scripts\flask.exe\\uuuuu main\uuuuuu.py”,第9行,在
文件“f:\flasky\venv\lib\site packages\flask\cli.py”,第894行,主目录
cli.main(args=args,prog_name=name)
文件“f:\flasky\venv\lib\site packages\flask\cli.py”,第557行,主目录
返回超级(烧瓶组,自身)。主(*args,**kwargs)
文件“f:\flasky\venv\lib\site packages\click\core.py”,第717行,主目录
rv=自调用(ctx)
文件“f:\flasky\venv\lib\site packages\click\core.py”,第1132行,在invoke中
cmd\u name,cmd,args=self.resolve\u命令(ctx,args)
文件“f:\flasky\venv\lib\site packages\click\core.py”,第1171行,在resolve\u命令中
cmd=self.get_命令(ctx,cmd_名称)
文件“f:\flasky\venv\lib\site packages\flask\cli.py”,第515行,在get\u命令中
rv=info.load_app().cli.get_命令(ctx,name)
文件“f:\flasky\venv\lib\site packages\flask\cli.py”,第377行,在load\u应用程序中
如果未找到,则引发(错误)
文件“f:\flasky\venv\lib\site packages\flask\cli.py”,第254行,位于locate\u应用程序中
返回查找最佳应用程序(脚本信息,模块)
文件“f:\flasky\venv\lib\site packages\flask\cli.py”,第76行,在find\u best\u应用程序中
app=呼叫工厂(脚本信息,app工厂)
文件“f:\flasky\venv\lib\site packages\flask\cli.py”,第114行,在call\u工厂中
返回应用程序工厂(脚本信息)
文件“F:\flasky\app\\ uuuuu init\ uuuuuu.py”,第22行,在创建应用程序中
app.config.from_对象(config[config_name])
关键错误:
\uuuu init\uuuuu.py
从烧瓶导入烧瓶
从flask_引导导入引导
从电子邮件导入邮件
从零力矩导入力矩
从flask_sqlalchemy导入sqlalchemy
从登录导入登录管理器
从flask_pagedown导入pagedown
从配置导入配置
bootstrap=bootstrap()
mail=mail()
力矩=力矩()
db=SQLAlchemy()
pagedown=pagedown()
login\u manager=LoginManager()
login\u manager.login\u view='auth.login'
def创建应用程序(配置名称):
app=烧瓶(名称)
app.config.from_对象(config[config_name])
config[config\u name].init\u应用程序(应用程序)
bootstrap.init_应用程序(应用程序)
mail.init_应用程序(应用程序)
瞬间初始化应用程序(应用程序)
db.init_应用程序(应用程序)
登录管理器。初始化应用程序(应用程序)
pagedown.init_应用程序(应用程序)
如果app.config['SSL_REDIRECT']:
从烧瓶\u sslify导入sslify
sslify=sslify(应用程序)
from.main导入main作为main\u蓝图
应用程序注册图纸(主图纸)
from.auth导入auth作为auth\u蓝图
app.register\u blueprint(auth\u blueprint,url\u前缀='/auth')
从.api导入api作为api\u蓝图
应用程序注册蓝图(api蓝图,url前缀='/api/v1')
返回应用程序
环境版本详细信息
Operating System: Windows 10
Python:3.7
Flask: 1.0.2
参考书
Flask Web开发版本2 17.4.2使用Heroku本地测试
Heroku CLI有一个本地命令,用于在非常接近Heroku服务器的环境中本地测试应用程序。但是,在本地运行应用程序时,环境变量(如FLASK_APP)不再是环境变量。heroku local命令在中查找配置应用程序的环境变量。应用程序顶部目录中的env文件。比如,。env文件可能包含以下变量:
FLASK_APP=flasky.py
FLASK_CONFIG=heroku
MAIL_USERNAME=
MAIL_PASSWORD=
从那以后。env文件包含密码和其他敏感帐户信息,不包括在版本控制中
部署任务和数据库创建在启动应用程序之前执行。可以使用local:run命令运行一次性任务:
(venv) $heroku local: run flask deploy
[OKAY] Loaded ENV.env File as KEY = VALUE Format
INFO Context impl SQLiteImpl.
INFO Will assume non-transactional DDL.
INFO Running upgrade - > 38c4e85512a9, initial migration
INFO Running upgrade 38c4e85512a9 - > 456a945560f6, login support
INFO Running upgrade 456a945560f6 - > 190163627111, account confirmation
INFO Running upgrade 190163627111 - > 56ed7d33de8d, user roles
INFO Running upgrade 56ed7d33de8d - > d66f086b258, user information
INFO Running upgrade d66f086b258 - > 198b0eebcf9, caching of avatar hashes
INFO Running upgrade 198b0eebcf9 - > 1b966e7f4b9e, post model
INFO Running upgrade 1b966e7f4b9e - > 288cd3dc5a8, rich text posts
INFO Running upgrade 288cd3dc5a8 - > 2356a38169ea, followers
INFO Running upgrade 2356a38169ea - > 51f5ccfba190, comments
在您的案例中,没有设置环境变量时,我遇到了这个问题,尤其是
FLASK\u APP=flasky.py
。我没有使用heroku,但请检查您的环境变量是否设置正确。