【问题标题】:Flask project runs on PyCharm but not on VS Code and HerokuFlask 项目在 PyCharm 上运行,但不在 VS Code 和 Heroku 上
【发布时间】:2022-01-10 22:52:31
【问题描述】:

当我在 VS Code 终端中运行 flask run 时,会出现错误提示

flask run
 * Serving Flask app 'app.py' (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: off
Usage: flask run [OPTIONS]
Try 'flask run --help' for help.

Error: While importing 'app', an ImportError was raised.

我认为这是由于项目的结构方式以及在进行此类导入时可能会出错。

from backend.config.dbconfig import pg_config

这是我目前使用的项目结构。

system
    ├───.github
    ├───.venv
    ├───.vscode
    ├───backend
    │   ├───config
    │   │   ├───__init__.py
    │   │   └───dbconfig.py
    │   ├───controller
    │   │   ├───__init__.py
    │   │   └───account.py
    │   ├───model
    │   │   ├───__init__.py
    │   │   └───account.py
    │   └───app.py
    ├───Documents
    └───frontend
        ├───public
        └───src

所有 __init__.py 都是空的,据我所知,它们是必需的。

我注意到,当我从导入 from backend.config.dbconfig import pg_config 中删除 backend. 并将其添加到我的 app.py...

import sys
sys.path.append('./')

它在 VS Code 和 Heroku 中有效,但 PyCharm 现在抛出错误,说 Unresolved reference 'model'

以下是我的应用程序在进行“修复”以使其在 Heroku 和 VS Code 上运行后的示例。导入在 PyCharm 中仍显示为错误,但它在 PyCharm 中运行。由于它抛出错误,我假设我以错误的方式处理它,但我不知道还能做些什么来修复它。

这是我的 app.py 的示例

import sys

sys.path.append('./')

from flask import Flask, request, jsonify
from flask_cors import CORS
from controller.account import BaseAccount

app = Flask(__name__)
CORS(app)


@app.route('/account', methods=['GET', 'POST'])
def handleAccounts():
    if request.method == 'GET':
        return BaseAccount().getAllAccounts()
    elif request.method == 'POST':
        return BaseAccount().insertAccount(request.json)
    else:
        return jsonify("Method Not Allowed"), 405

controller/account.py

from flask import jsonify

from model.account import AccountDAO

class BaseAccount:

是否可以在不改变项目结构的情况下修复这些错误?

【问题讨论】:

    标签: python flask heroku visual-studio-code pycharm


    【解决方案1】:

    这是因为 Pycharm 可以在PYTHONPATH 中自动添加工作区文件夹(项目中的系统文件夹),但在 VSCode 中需要手动添加。

    你可以在settings.json文件中添加这个来解决问题:

      "terminal.integrated.env.windows": {
        "PYTHONPATH": "${workspaceFolder};"
      },
    

    【讨论】:

      猜你喜欢
      • 2020-04-27
      • 1970-01-01
      • 2017-01-10
      • 1970-01-01
      • 2015-07-10
      • 2020-03-05
      • 2015-09-10
      • 1970-01-01
      • 2019-11-23
      相关资源
      最近更新 更多