当我尝试使用Equals(Person p) { return p.id == this.id }
运行非常简单的Flask应用程序时,它不起作用,但是当我flask run
和cd 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 run
与import 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 run
和flask.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'
是正确的,因为这是使测试通过的原因,但是我根本无法使它起作用。
答案 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