![](/img/trans.png)
[英]how to run main.js, cros.js and server.py at the same time on a server
[英]flask run does not work but python server.py does! Environment vars set
當我嘗試使用flask run
運行我非常簡單的 Flask 應用程序時,它不起作用,但是當我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
與from src import chat
消失時,我在 IDE 的import chat
下看到一條紅色波浪線。
test_server.py
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
環境變量shell腳本的內容是
export FLASK_ENV=development
export FLASK_DEBUG=1
export FLASK_APP=server.py
我已經嘗試使FLASK_APP
src.server.py
和server.py
,目前都沒有工作。 當然,我記得運行 shell 腳本並回顯變量以確保它們已更改。
我從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'
作為堆棧跟蹤的一部分或ModuleNotFoundError: No module named 'src'
取決於使用的導入樣式。 我不確定我在這里做錯了什么。 我傾向於認為from src import chat
是正確的,因為這是使測試通過的原因,但是我根本無法使其正常工作。
你有沒有試過$env:FLASK_APP = "server.py"
也試試這樣的東西, export FLASK_APP=my_project/src/server.py; flask run
export FLASK_APP=my_project/src/server.py; flask run
你也可以app = Flask (__name__) in __init__.py and then execute flask run
提到app = Flask (__name__) in __init__.py and then execute flask run
通過將server.py中有問題的導入更改為
from my_project.src import chat
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.