python - Flask运行错误python,虚拟环境中没有名为flask的模块

标签 python flask

抱歉,已经四处寻找这个问题的答案,并且看到有人遇到类似的问题,但到目前为止还没有解决这个问题。

我正在尝试在安装了 Flask 的虚拟环境( venv )下设置一个简单的 Flask 应用程序。我的主目录下有一个文件夹 simple_app/ ,它有一个文件 __init__.py ,其内容为:

    from flask import Flask

    def create_app():
        app = Flask(__name__)

        @app.route('/')
        def mainPage():
            return 'Hi!'

        return app

    # to try and run app from script
    if __name__ == '__main__':
        app = create_app()
        app.run()

我通过 .env 指定了 FLASK_APP 和 FLASK_ENV 。如果我尝试flask run我得到以下输出:

 $ flask run
 * Serving Flask app "simple_app" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Restarting with stat
 ...\venv\scripts\python.exe No module named ...venv\Scripts\flask

我可以插入print()语句,这些语句的输出将与此错误一起显示。

但是如果我运行 python simple_app/__init__.py我的应用程序启动得非常好(如 "__init__" )。

此外,如果我运行 flask routes我明白了

$ flask routes
Endpoint  Methods  Rule
--------  -------  -----------------------
mainPage  GET      /
static    GET      /static/<path:filename>

这样 Flask 似乎确实了解我的应用程序。

我以前使用过这种类型的结构,没有出现任何问题,所以不太确定这里出了什么问题,尽管我对 Flask 还很陌生。

非常感谢任何人能够提供的任何帮助!

最佳答案

我看不出你的设置有什么问题。我刚刚创建了完全相同的应用程序,具有(据我所知)相同的环境,并且一切正常。您尚未指定您使用的是哪个版本的 Python,因此以下是我执行的完整步骤(也许您可以发现您错过的内容):

  • 使用Python 3.7.4
  • 使用python -m venv venv创建虚拟环境
  • 使用source venv/bin/activate激活虚拟环境
  • 使用pip install Flask安装了flask
  • 创建了下面的文件夹结构,并将代码复制到一个文件中
  • 运行以下命令:
export FLASK_APP=simple_app`
export FLASK_ENV=development`
flask run

这使得应用程序按预期运行。

文件夹结构如下,只有一个.py文件:

.
└── simple_app
    └── __init__.py

该 .py 文件的内容与您所述的完全相同:

__init__.py:

from flask import Flask

def create_app():
    app = Flask(__name__)

    @app.route('/')
    def mainPage():
        return 'Hi!'

    return app

# to try and run app from script
if __name__ == '__main__':
    app = create_app()
    app.run()
$ flask run
 * Serving Flask app "simple_app" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: [snip]

关于python - Flask运行错误python,虚拟环境中没有名为flask的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57124701/

相关文章:

python - 为什么代码更改时自动重新加载仅用于使用 Gunicorn 进行调试?

crontab中的python脚本获取同时运行的另一个进程的输入参数

python - 插值 4D 数据

python - 与 curl 一起工作,请求失败;如何修复我的请求代码?

python - Flask 总是返回重定向页面

python - 如何在 Flask、nginx、uwsgi 堆栈中重新加载 python 库?

python - 对象列表 : how to extract attributes from a particular region or slice?

python - 在 python 代码中生成的无穷大

python - Flask SQLAlchemy - 2013 失去连接

python - 在 Flask 中允许 CORS