【问题标题】:Python I can't open file 'app.py' in flaskPython我无法在烧瓶中打开文件'app.py'
【发布时间】:2020-06-18 09:08:40
【问题描述】:

我正在使用烧瓶开发 Python 项目。通过backend_code/ 目录下的python3 app.py 启动后端程序工作正常。 不过今天试了下,结果显示

my_user_namedeMBP:backend_code my_user_name$ python3 app.py
 * Serving Flask app "app" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)
 * Restarting with stat
/Library/Frameworks/Python.framework/Versions/3.6/Resources/Python.app/Contents/MacOS/Python: can't open file '/Users/my_username/folder_name/**project_name/app.py**': [Errno 2] No such file or directory

这是项目结构:

+-- folder_name
    +-- project_name
      +-- frontend_code
      |
      +-- backend_code
          +-- app.py

当我移回目录folder_name/ 并运行backend_code/python3 app.py 时它运行良好,但我尽量不这样做,因为它会导致我的后端代码中的某些文件路径读取无效。 我不明白我启动了解释器并在 backend_code/ 目录下运行 app.py 但错误消息显示它正在寻找 project_name/ 下的 app.py 显然找不到 app.py (它在 project_name/backend_code/ 下)。

我能记得的唯一可能导致此问题的事情是我将我的 pip 从 9.* 更新到 12.*(我已经降级了它,但错误仍然存​​在)。

其他信息可能有用:

我正在使用 vscode。

  pip -V => pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
  pip3 -V => pip 9.0.3 from 
   /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages (python 3.6) 
  python --version => Python 2.7.15
  python3 --version => Python 3.6.5 

谁能告诉我该怎么做?这是为什么?感谢您的帮助!

【问题讨论】:

  • 您能告诉我们您尝试在其中运行app.py 的cwd 吗?如果您在 project_name 目录中,则需要 cd .. 才能转到 folder_name,然后只需 cd backend_code 并运行该应用程序。
  • @Patch 感谢您的回复。 cwd 是/Users/user_name/folder_name/project_name/backend_code ,这是我希望使用python3 app.py 运行app.py 的目录。它通常运作良好。
  • 由于您的错误,您不在此目录中。
  • 是的,这让我很困惑。我很确定我在那个目录中,否则它会在开始时显示“app.py not found”。
  • 你试过用cmd运行吗?

标签: python python-3.x linux flask backend


【解决方案1】:

我在使用 Dash 应用程序(基于 Flask)时遇到了同样的错误。

据我所知,它可能与我的几个 .py 文件中的 sys.path.append 相关。但是,如果我没有附加此路径,我将无法在其他文件夹中加载某些函数(这是一个 DB 助手)。

有人知道如何解决这个问题吗?

我正在使用 Ubuntu、VS Code 和 anaconda。

感谢您的帮助。

编辑解决方案: 如果我运行 werkzeug 的 run_simple 而不是作为开发服务器的本机 app.run_server(如上面的警告),我能够解决这个问题:

    from werkzeug.serving import run_simple
    run_simple("0.0.0.0", 8050, app.server, use_debugger=True)

【讨论】:

    猜你喜欢
    • 2019-09-01
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    相关资源
    最近更新 更多