flask运行不起作用,但是python server.py可以!环境变量集

时间:2019-11-25 09:43:40

标签: python flask

当我尝试使用Equals(Person p) { return p.id == this.id }运行非常简单的Flask应用程序时,它不起作用,但是当我flask runcd src时,它却起作用。

文件结构:

python server.py

my_project |____init__.py | |__src | |____init__.py | |__server.py | |__chat.py | |__test | |____init__.py | |__test_server.py | |__test_chat.py | |__FLASK_ENV_VARS.sh

server.py

为了使测试通过,我需要from flask import Flask, jsonify import chat api = Flask(__name__) @api.route('/') def root(): message = chat.say_hello() return jsonify(message=message) if __name__ == '__main__': api.run(debug=True) 。当我将其保留为from src import chat时,服务器将在尝试import chat而不是python server.py时运行(这两种导入聊天都不会运行)。有趣的是,当flask runimport chat消失时,我的IDE聊天时出现了一条红色的松散线。

from src import chat

test_server.py

环境变量shell脚本的内容是

import pytest


from src.server import api


def test_route(client):
    response = client.get('/')
    assert response.status_code == 200
    expected_data = b'{"message":"Welcome message here"}\n'
    assert response.data == expected_data



@pytest.fixture
def client():
    api.testing = True
    client = api.test_client()
    return client 

我尝试同时制作export FLASK_ENV=development export FLASK_DEBUG=1 export FLASK_APP=server.py FLASK_APP的{​​{1}},目前都无法使用。当然,我记得运行shell脚本并回显变量以确保它们已更改。

我从src.server.py得到的错误是server.py

当我flask runflask.cli.NoAppException: Could not import "my_project.server".时,我得到cd src

我怀疑问题在于聊天导入的方式。测试仅与flask run一起运行。当我运行flask.cli.NoAppException: While importing "my_project.src.server", an ImportError was raised:时,我只能拥有from src import chat,否则将无法正常工作。我得到python server.py作为堆栈跟踪的一部分,或者得到import chat作为堆栈跟踪的一部分,这取决于所使用的导入样式。我不确定在这里出了什么问题。我倾向于认为ModuleNotFoundError: No module named 'chat'是正确的,因为这是使测试通过的原因,但是我根本无法使它起作用。

1 个答案:

答案 0 :(得分:0)

您尝试过$env:FLASK_APP = "server.py"

也尝试类似的事情,export FLASK_APP=my_project/src/server.py; flask run

您还可以提及app = Flask (__name__) in __init__.py and then execute flask run