烧瓶教程; 无法导入flaskr(初始化数据库)

Jam*_*e B 12 python import flask

我是编程新手,并试图通过烧瓶教程. http://flask.pocoo.org/docs/tutorial/

在尝试运行应用程序时,我坚持这部分(来自github上的自述文件):https: //github.com/mitsuhiko/flask/tree/master/examples/flaskr/

启动python shell并运行:

from flaskr import init_db; init_db()
Run Code Online (Sandbox Code Playgroud)

当我尝试在python shell中运行命令时出现此错误:

Import error: No module named flaskr
Run Code Online (Sandbox Code Playgroud)

当我尝试在本地运行应用程序时出现此错误:

sqlite3.OperationalError
OperationalError: unable to open database file
Run Code Online (Sandbox Code Playgroud)

我一直在寻找几个小时的解决方案,但无济于事.关于我能检查什么的任何想法?谢谢.

cas*_*pii 24

为我修复它的事情正在发生变化

export FLASK_APP=flaskr
Run Code Online (Sandbox Code Playgroud)

export FLASK_APP=flaskr.py
Run Code Online (Sandbox Code Playgroud)

取自这里


Sea*_*ira 5

完成所需操作的最简单方法是在与flaskr相同的文件夹中启动Python shell:

# I'm assuming that python is available on the command line
$ cd path/to/flaskr
$ python

# Python then runs and you can import flaskr
>>> from flaskr import init_db; init_db()
>>> exit()
Run Code Online (Sandbox Code Playgroud)

诀窍在于,当你运行Python时,它只能在一定数量的地方查找模块和包 - 你可以通过运行来查看哪些地方:

>>> from sys import path
>>> for fp in path:
...     print fp
Run Code Online (Sandbox Code Playgroud)

来自Python解释器.如果flaskr的路径不在该列表中,则无法导入flaskr.默认情况下,Python将其启动的目录添加到其搜索路径中(这就是我们在包含flaskr的目录中启动Python的原因.)

一旦运行,init_db您应该能够运行应用程序并查看一切正常.