sayhello 第七章 报错(已经解决)


#1

在终端中运行
flask initdb
提示错误:

Error: No such command “initdb”.

终端运行 flask shell

PS C:\Users\Gux\Documents\flask_project\sayhello> flask shell
Usage: flask shell [OPTIONS]

Error: Could not import “sayhello.sayhello”.

启动程序 flask run 并不报错,但是浏览器访问报错

flask.cli.NoAppException
flask.cli.NoAppException: While importing “sayhello.sayhello”, an ImportError was raised:

Traceback (most recent call last):
File “c:\users\gux.virtualenvs\sayhello-cvycmk-d\lib\site-packages\flask\cli.py”, line 235, in locate_app
import(module_name)
File “C:\Users\Gux\Documents\flask_project\sayhello_init_.py”, line 11, in
app.config.from_pyfile(‘settings.py’)
File “c:\users\gux.virtualenvs\sayhello-cvycmk-d\lib\site-packages\flask\config.py”, line 130, in
from_pyfile

exec(compile(config_file.read(), filename, 'exec'), d.__dict__)

File “C:\Users\Gux\Documents\flask_project\sayhello\settings.py”, line 4, in
from . import app, db
ModuleNotFoundError: No module named ‘config’


#2

导入app实例未成功。
建议导入包时用绝对导入:

from sayhello import app, db

#3

试过了,完全按照书上写的,还是报错
我把代码转到 linux 下运行,也是一样


#4

如果是自己照着书上写的,和Github仓库里的源码对照一下,通常都是一些细节问题或者小笔误。


#5

我直接拿仓库的代码运行,也是一样
windows7
vscode

终端用 flask run 不提示错误,但是浏览器访问或者 使用终端命令就出错


#6

终于找到原因了,不是代码的问题,是因为文件组织结构错了

我没主意,把 .flaskenv .Pipfile .Pipfile.lock 放到了程序包里面去了

搞了我一个晚上了,不过还是非常感谢你的回复!浪费你时间了,不好意思!


#7

正常,多细心一些,都是这么一步步过来的