【问题标题】:No module named flask in virtualenv although installed虽然安装了 virtualenv 中没有名为 flask 的模块
【发布时间】:2016-09-27 05:48:30
【问题描述】:

我想使用 Flask 开发一个网站,但我已经无法运行一个简单的演示应用程序。

我跟着the flask website的完整安装教程
意思是:

  • 我创建了一个项目目录。
  • 在此目录中,我创建了我的 virtualenv 文件夹,如教程中所述。
  • 我使用 启动了虚拟环境。 venv/bin/激活
  • 我通过 pip install Flask 在 vi​​rtualenv 中安装了烧瓶

如果我现在通过 python(在运行 venv 时)打开 python 控制台并尝试 from flask import Flask 我得到了错误:

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 ImportError:没有名为“flask”的模块

同时运行如下所示的简单 Hello World 应用程序也会出现相同的错误。 如果我尝试在 venv 中再次安装flask,控制台中会显示以下内容:

from flask import Flask
application = Flask(__name__)

@application.route("/")
def hello():
    return "hello world"

if __name__ == "__main__":
    application.run()

为了完整性:我已经在 SO 和 google 上进行了很多搜索,但找不到相同的问题。虽然我发现了一些相关的问题,但他们都遇到了一个问题,即询问者要么忘记在 venv 中安装烧瓶,要么忘记激活 venv 等。
此外,如果我键入 which python 它正确指向我的 venv 文件夹中的文件夹 bin/python。

【问题讨论】:

    标签: python flask virtualenv


    【解决方案1】:

    好的,我解决了这个问题:如果我使用 python3 而不是 python 来执行我的程序或打开 python 控制台,一切都会按预期工作。
    不过,这很奇怪,因为(在 venv 内部)执行 which python3 指向我的 venv 的 bin 文件夹中的 python3 文件,但 which python 指向内部的符号链接同一个文件夹,它再次指向完全相同的 python3 文件。

    【讨论】: