在虚拟环境中安装了Flask,但是出现“command not found”错误

36
安装了virtualenv并激活,使用pip安装了Flask,但运行脚本或检查是否识别时,出现了“命令未找到”的错误提示。
(project)gabriel@debian:~/project$ pip list
Flask (0.10.1)
itsdangerous (0.24)
Jinja2 (2.7.3)
MarkupSafe (0.23)
pip (1.5.6)
setuptools (5.5.1)
Werkzeug (0.10.4)
(project)gabriel@debian:~/project$ flask
-bash: flask: command not found
(project)gabriel@debian:~/project$ Flask
-bash: Flask: command not found
(project)gabriel@debian:~/project$ </3

也尝试过:

(project)gabriel@debian:~/project$ python -m flask pi.py
/home/gabriel/project/bin/python: No module named flask.__main__; 'flask' is a package and cannot be directly executed
(project)gabriel@debian:~/project$ 

我知道这是一个老问题,但仍然需要指出:如果您正在使用虚拟环境,那么可能会导致环境混乱,只需重新安装并确保 Flask 可执行文件存在即可。 - Ciasto piekarz
8个回答

35

在我按照0.12版本的教程进行操作时,遇到了这个问题。对于那些使用更新版本时也遇到此问题的人,我通过以下方式成功启动了服务器:

$ python -m flask run

2
对于 Python 3,运行 Flask 的命令是 $python3 -m flask run。 - Yauhen

26

Flask 0.10版本没有flask命令,它在0.11版本中添加。如果pi.py有足够的智能运行你的应用程序,例如它使用了Flask-Script,那么你要找的命令是:

$ python pi.py
你可以安装 Flask-CLI 在版本号为 0.11 以下的情况下获得 flask 命令。 Flask-CLI

我在跟随教程,但是它使用的是旧的例子而不是页面上的新例子。谢谢。 - Gabriel
只需使用 pip uninstall flask 卸载 Flask,然后使用 pip install flask 重新安装即可。这是我升级 pip 后遇到的问题。 - Boogie
@dassanctity 我在任何地方都没有找到 pip 安装 flask,所以来到了这个帖子...我昨天就为我的 flask 程序无法运行而苦恼,但你救了我...我安装了 pip,但是没有具体的命令来安装 flask...或许我一直在搜索错误的东西,但你救了我...非常感谢你,朋友! - AdiAtAnd
@AdiAtAnd,您可以在https://flask.palletsprojects.com/en/1.1.x/installation/#install-flask找到安装Flask的说明。 - dirn
谢谢 @dirn,我这边唯一剩下的就是设置环境了。我的Flask程序已经在运行了。再次感谢。 - AdiAtAnd
很高兴为您服务,@AdiAtAnd。 - Boogie

21
你需要升级 Flask。 在你的虚拟环境终端中使用以下命令。
pip install --upgrade Flask

1
太好了!刚刚升级了它,现在可以使用flask命令了。 Flask@1.0.3 - Hamza AVvan

5

我曾经遇到过类似的问题。在我的情况下,我将我的项目移动到了另一个目录,但是 PATH仍然指向旧目录。我通过删除我的 venv 虚拟环境并创建一个新的虚拟环境来解决这个问题。

确保激活你的虚拟环境并检查你的路径 echo $PATH,确保你的 <user-dir>/<proj-dir>/venv/bin 存在于你的 PATH 中。


1

验证您安装的Flask位置:

mortiz@florida:~/Documents/projects$ pip freeze |grep -i flask
Flask==1.0.2
mortiz@florida:~/Documents/projects$ pip2 freeze |grep -i flask
Flask==1.0.2
mortiz@florida:~/Documents/projects$ pip3 freeze |grep -i flask
Flask==1.0.2
Flask-CLI==0.4.0
Flask-Jsonpify==1.5.0
Flask-RESTful==0.3.6
Flask-SQLAlchemy==2.3.2

请确认您正在虚拟环境中为正确的 Python 版本安装 Flask。

查找您的 Python 版本 "在您的(venv)内部"

mortiz@florida:~/Documents/projects/python/APIS/new_project_py_2_7$ which python
    /home/mortiz/Documents/projects/python/APIS/new_project_py_2_7/venv/bin/python

(venv) mortiz@florida:~/Documents/projects/python/APIS/new_project_py_2_7$ python --version
Python 3.5.3

安装 Python3 的 Flask

pip3 install flask
#or
python3 -m pip install flask

安装 Python2 的 Flask

pip2 install flask
#or
python2 -m pip install flask

安装 Flask 到默认的 Python(如果你在 (venv) 或者 shell 中,请小心)

pip install flask
python -m install flask

解释

对于运行较高版本Flask的人,请考虑评估您的环境,如此处所述

对我来说,问题是在我的(venv)二进制文件运行python3时安装了python2的flask。


对我来说,问题在于假设pippip3是相同的——只有pip3才会在虚拟环境中安装Flask!而pip则……我不知道做了什么,并把它放在我不知道的地方。 - mc01
只使用'pip'将会安装到您环境中的默认Python版本。如果您环境的默认版本是python3,那么pip可能会为python3安装该库。请注意,venv虚拟环境和您的shell环境中可能存在不同的Python版本。 - Miguel Ortiz

0
我正在使用版本0.12.2并遇到了相同的问题。这是我的解决方案: python -m flask run FLASK_APP=/path/to/filename.py

0

我使用过 Flask 0.10.1,为了验证是否已安装,您应该激活 virtualenv 然后输入:

$ python
>>> from flask import Flask

如果它运行顺畅,你就拥有它了。 要运行应用程序,您可以使用以下任一方法

app = Flask(__name__)
app.run(debug=True)

或者使用 Flask_Script:

from flask_script import Manager
manager = Manager(app)
manager.run

希望这能对你有所帮助。

0

我不得不再次激活虚拟环境

. venv/bin/activate

这对我有用


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接