【问题标题】:Flask "Error: The file/path provided does not appear to exist" although the file does existFlask“错误:提供的文件/路径似乎不存在”尽管文件确实存在
【发布时间】:2017-06-14 06:41:07
【问题描述】:

我使用export FLASK_APP=flask_app,然后使用flask run,但出现错误:

错误:提供的文件/路径 (flask_app) 似乎不存在。请验证路径是否正确。如果应用不在 PYTHONPATH 上,请确保扩展名为 .py

但是,文件确实 存在,甚至在当前工作目录中。使用文件的完整路径也不起作用。

【问题讨论】:

    标签: python flask python-import file-not-found


    【解决方案1】:

    当您的ImportError 没有传播到您的终端时,就会出现这种情况。检查所有文件中的无效导入语句,修复它们,错误应该会消失。

    编辑 2017-04-02: @Michael 指出,我现在放在“旧消息第 2 部分”标签下的参考是不正确的。我不知道这个错误是怎么产生的,但我在Flask Github 上找到了一篇最近的帖子,他们引用了the commit,应该在 2016 年 12 月 30 日解决了这个问题。可能当时我是确实在运行较旧的烧瓶版本。

    旧消息第 2 部分: 这个问题在Flask Github 上讨论过,虽然我不确定它何时甚至是否真的被修复了,因为我今天仍然遇到错误,即使我在该页面上描述的修复合并后下载了 Flask (12 2016 年 8 月)。

    【讨论】:

    • 消息不正确,因为它令人困惑,flask 应该处理这个消息,谢谢@PDiracDelta
    • 我在 Flask 0.12 中仍然存在这个问题,这是 pip 发现的最新版本。每当我错过import 声明时,我都会看到这个误导性错误。不过,您链接到的 Github 票证似乎是另一个错误。您的意思是链接到其他地方吗?
    • 感谢@Michael 注意到我的错误!更新了答案。
    • 啊,是的,那个链接更有意义,看起来这个问题已经在 master 分支上解决了。希望 Flask 0.13 将很快发布。谢谢!
    • 运行python manage.py 来查看导入错误可能很有用。
    【解决方案2】:

    当使用环境变量运行时,错误消息来自flask 0.x版,只需将flask升级到1.x版即可。

    pip install -U flask
    

    【讨论】:

      【解决方案3】:

      当我在代码中的某处缺少import 语句时,我看到了这个错误。在我看来,没有显示实际导入错误的事实是一个错误,如@PDiracDelta 的answer 中所述。 (更新:它似乎将在 Flask 0.13 中修复。)

      对我有用的解决方法是在命令行中指定应用程序。从您引用的错误消息来看,您的应用程序似乎名为“flask_app”,因此只需输入以下内容:

      python flask_app.py
      

      这不会真正运行应用程序(除非它检查if __name__ == '__main__' 或其他东西),但它会显示导入错误。

      【讨论】:

        【解决方案4】:

        如果您在命令行上发出flask run,则会出现此消息。而是在设置 export FLASK_APPexport FLASK_ENV 变量后使用 python -m flask run。在创建应用程序工厂时,我在遵循 Flask 教程时遇到了这个问题。该指令未指定在flask run 前加上python -m

        【讨论】:

          【解决方案5】:

          这可能有很多原因。

          python2 vs python3 问题,

          pip2 install Flask vs pip3 install Flask 问题,

          (venv) virtual environment vs local environment 问题。

          就我而言,必须执行以下操作才能解决问题:

          1. python3 -m venv venv

          2. . venv/bin/activate

          3. pip3 install Flask

          4. export FLASK_APP=flask_app

          5. flask run

          【讨论】:

            【解决方案6】:

            类似于y2knoproblem,我是按照flask官方教程,所以使用了应用工厂和venv虚拟环境。我能够使用

            python -m flask run
            

            但这导致了我的 IDE 服务于 localhost 的问题,而不是像我在 application.py 上运行“flask run”时那样从外部访问的地址。

            我能够通过指定来完成这项工作

            export FLASK_APP=__init__.py
            

            而不是

            export FLASK_APP=myapp
            

            【讨论】:

              【解决方案7】:

              请按以下步骤操作:

              1. 确保您已经完成了 [pip install --editable 。 ]。在哪里 '。'表示安装您的应用程序的目录的位置。例如(flask_app)

              2. 运行 python 它将打开命令行python解释器

              3. 尝试导入烧瓶应用 如果它有错误,你会得到详细的错误。 尝试修复该错误。

              我确实遇到了同样的问题,按照上面的步骤,发现运行代码有错误。解释器显示编译错误。

              【讨论】:

                【解决方案8】:

                werkzeug 版本不适合烧瓶。要解决这个问题,您需要升级 werkzeug,使用: $pip install werkzeug --upgrade

                【讨论】:

                  【解决方案9】:

                  在烧瓶教程的第 5 步出现同样的问题:http://flask.pocoo.org/docs/0.12/tutorial/dbinit/

                  我做的是

                  1)在虚拟环境中,通过pip uninstall flaskr卸载包

                  2) 停用虚拟环境,然后通过deactivate 然后source bin/activate 重新激活它

                  3) 通过pip install --editable .重新安装flaskr包

                  4) 通过export FLASK_APP=flaskr重置环境变量

                  5) 现在在浏览器中执行 flask run 并点击 localhost:5000 会生成 404(没有视图,如预期)错误,而不是 500(未找到文件)错误。

                  或按预期执行flask initdb 触发init_db() 函数

                  【讨论】:

                    猜你喜欢
                    • 2015-07-27
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2014-12-23
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多