我是编程新手,并试图通过烧瓶教程。 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()
当我尝试在python shell中运行命令时出现此错误:
Import error: No module named flaskr
当我尝试在本地运行应用程序时出现此错误:
sqlite3.OperationalError
OperationalError: unable to open database file
我现在一直在寻找解决方案几个小时,但无济于事。 关于我能检查什么的任何想法?谢谢。
答案 0 :(得分:24)
答案 1 :(得分: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()
诀窍在于,当你运行Python时,它只能在modules and packages的某个位置查找 - 你可以通过运行来查看哪些地方:
>>> from sys import path
>>> for fp in path:
... print fp
来自Python解释器的。如果flaskr的路径不在该列表中,则无法导入flaskr。默认情况下,Python将其启动的目录添加到其搜索路径中(这就是我们在包含flaskr的目录中启动Python的原因。)
运行init_db
之后,您应该能够运行该应用程序并查看所有工作。
答案 2 :(得分:4)
如果您使用的是Flask版本< 0.11,flask
命令不可用。在这种情况下安装flask-cli
包。
pip install flask-cli
答案 3 :(得分:2)
对于发现此问题的任何其他人,请将init_db()
添加到主执行者,直至flaksr
应用的末尾,如下所示:
if __name__ == '__main__':
init_db()
app.run()
这应解决sqlite错误并阻止您手动运行init_db()
。
答案 4 :(得分:2)
当我们说:
export FLASK_APP=flaskr
绝不是python了解包的位置" flaskr.py"存在。
解决问题的方法之一是选择正确的路径,其中" flaskr.py"驻留。例如,将当前工作目录更改为文件所在的位置:
export PYTHONPATH=`pwd`
然后你可以执行" flask run"你想要的任何地方。
PS:烧瓶教程似乎破了。 :)答案 5 :(得分:0)
$ cd path/to/flaskr
#active
$ . venv/bin/activate
(venv)$ python
# Python then runs and you can import flaskr
>>> from flaskr import init_db;
>>> init_db()
>>> exit()
$
希望额外的信息有用!
答案 6 :(得分:0)
$set FLASK_APP=flaskr
$python -m flask initdb
$python -m flask run
答案 7 :(得分:0)
试试这个:
操作系统:Windows
(venv)$pip install -I --no-deps Flask
(venv)$set FLASK_APP=flaskr
(venv)$set FLASK_DEBUG=1
(venv)$flask run
说明:
$where flask
将有助于找到 flask.exe
如果virtual-env从system-env继承 flask
(venv)$where flask
>> /system/environment/path/to/flask.exe
(root)$where flask
>> /system/environment/path/to/flask.exe
显然它调用了为系统环境
安装的 flask.exe (venv)$pip install -I Flask
可以强制(重新)安装 flask for virtual-env
(venv)$pip install -I Flask
(venv)$where flask
>> /virtual/environment/path/to/flask.exe
>> /system/environment/path/to/flask.exe
答案 8 :(得分:0)
我有同样的问题,并且已经解决。 步骤1:
pwd
第二步:使用easy_install_3.4安装falsk。 第三步: