15

我是编程新手,并尝试完成烧瓶教程。 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

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

4

9 回答 9

24

为我解决问题的事情正在改变

export FLASK_APP=flaskr

export FLASK_APP=flaskr.py

取自这里

于 2016-07-12T06:31:43.340 回答
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 时,它只会在一定数量的位置查找模块和包- 您可以通过运行来查看哪些位置:

>>> from sys import path
>>> for fp in path:
...     print fp

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

运行后init_db,您应该能够运行应用程序并看到一切正常。

于 2012-08-25T01:19:50.240 回答
4

如果您使用的是 Flask < 0.11 的版本,则该flask命令不可用。在这种情况下安装flask-cli软件包。

pip install flask-cli
于 2016-06-08T19:17:01.243 回答
2

对于发现此内容的任何其他人,请将init_db()主执行器添加到应用程序的末尾,flaksr如下所示:

if __name__ == '__main__':
    init_db()
    app.run()

这应该可以解决 sqlite 错误并阻止您init_db()手动运行。

于 2013-07-22T20:11:53.797 回答
2

当我们说:

export FLASK_APP=flaskr

python 绝不理解包“flaskr.py”的存在位置。

解决问题的方法之一是选择“flaskr.py”所在的正确路径。例如,将您当前的工作目录更改为文件所在的位置,并且:

export PYTHONPATH=`pwd`

然后你可以在任何你想要的地方执行“烧瓶运行”。

PS:烧瓶教程似乎坏了。:)

于 2016-09-27T09:50:50.487 回答
0

Sean Viera 的回答非常好,尽管我想补充一点,我遇到了同样的问题并想添加到解决方案中。从同一个 flaskr 文件夹中运行 Python 对我来说还不够。在运行 $Python 之前,还需要通过运行“.venv/bin/activate”命令来激活 Flask,如下所示:

$ 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()
$

希望额外的信息有所帮助!

于 2014-02-23T23:17:22.567 回答
0
$set FLASK_APP=flaskr
$python -m flask initdb
$python -m flask run
于 2016-11-28T13:23:15.553 回答
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 继承烧瓶

(venv)$where flask
>> /system/environment/path/to/flask.exe

(root)$where flask
>> /system/environment/path/to/flask.exe

显然它调用了为 system-env 安装的flask.exe

(venv)$pip install -I Flask可以强制(重新)为虚拟环境安装烧瓶

(venv)$pip install -I Flask
(venv)$where flask
>> /virtual/environment/path/to/flask.exe
>> /system/environment/path/to/flask.exe
于 2018-03-25T17:20:32.163 回答
0

我有同样的问题,我已经解决了。步骤1:

  1. sudo ln -sf /usr/bin/python3.4 /usr/bin/python
  2. easy_install_3.4 烧瓶。
  3. 蟒蛇路径=pwd

step2:使用easy_install_3.4安装falsk。第三步:

标题

于 2018-11-18T03:48:29.920 回答