Flask-CLI 不能运行 应用?
Flask-CLI can not run application?
我正在使用 flask 和 flask-restful 开发 REST API。我目前在使用 flask-cli 时遇到问题,因为在公司环境中我无法 运行 使用该应用程序。可能是什么问题?
在企业中,我们为 python 3 个应用程序使用 conda 环境。目前 api 的环境包括 python 3.6.8 和 flask 1.0.2 和 flask-restful 0.37,运行ning 在 CentOS 7 上。甚至通过重新创建环境conda 的要求或 enviroment.yml,我无法 运行 应用程序,这与我的 ubuntu 18.04 个人计算机不同,带有 miniconda3 和 env python 3.6.8,使用相同的烧瓶包,我可以毫无问题地进行测试。
错误:
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 235, in locate_app
__import__(module_name)
ModuleNotFoundError: No module named 'main'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 325, in __call__
self._flush_bg_loading_exception()
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 313, in _flush_bg_loading_exception
reraise(*exc_info)
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 302, in _load_app
self._load_unlocked()
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 317, in _load_unlocked
self._app = rv = self.loader()
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 372, in load_app
app = locate_app(self, import_name, name)
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 246, in locate_app
'Could not import "{name}".'.format(name=module_name)
flask.cli.NoAppException: Could not import "main".
主要脚本:
from app import create_app, db
from flask_migrate import Migrate
app = create_app('development')
Migrate(app,db)
@app.shell_context_processor
def shell_context():
return dict(
app = app,
db=db
)
脚本init.py:
from flask_restful import Api
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
api=Api(app, prefix="/api/v1")
db.init_app(app)
from app.resources.catcherDicts import Catcher
api.add_resource(Catcher, "/catcher")
return app
我希望能够在公司环境中运行 进行测试并运行 应用程序。因为即使使用 export FLASK_APP = main.py
命令导出应用程序路径 flask run
也不能 运行 应用程序。
错误:
ModuleNotFoundError: No module named 'main'
告诉您它无法从您的 cli.py
模块中找到 main.py
模块。发生这种情况是因为您使用以下代码行将应用程序的入口点设置为 main.py
:export FLASK_APP = main.py
。我怀疑这个环境变量不正确,我会直接尝试 运行 你的入口文件,看看它是否有效,如果是你的环境变量不正确。此外,如果您不是 运行 包含您的入口点的目录中的文件,请确保您的 <path>
设置正确,否则 flask run
将无法工作。
希望对您有所帮助!
我正在使用 flask 和 flask-restful 开发 REST API。我目前在使用 flask-cli 时遇到问题,因为在公司环境中我无法 运行 使用该应用程序。可能是什么问题?
在企业中,我们为 python 3 个应用程序使用 conda 环境。目前 api 的环境包括 python 3.6.8 和 flask 1.0.2 和 flask-restful 0.37,运行ning 在 CentOS 7 上。甚至通过重新创建环境conda 的要求或 enviroment.yml,我无法 运行 应用程序,这与我的 ubuntu 18.04 个人计算机不同,带有 miniconda3 和 env python 3.6.8,使用相同的烧瓶包,我可以毫无问题地进行测试。
错误:
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 235, in locate_app
__import__(module_name)
ModuleNotFoundError: No module named 'main'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 325, in __call__
self._flush_bg_loading_exception()
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 313, in _flush_bg_loading_exception
reraise(*exc_info)
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
raise value
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 302, in _load_app
self._load_unlocked()
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 317, in _load_unlocked
self._app = rv = self.loader()
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 372, in load_app
app = locate_app(self, import_name, name)
File "/home/user/opt/miniconda3/envs/comands/lib/python3.6/site-packages/flask/cli.py", line 246, in locate_app
'Could not import "{name}".'.format(name=module_name)
flask.cli.NoAppException: Could not import "main".
主要脚本:
from app import create_app, db
from flask_migrate import Migrate
app = create_app('development')
Migrate(app,db)
@app.shell_context_processor
def shell_context():
return dict(
app = app,
db=db
)
脚本init.py:
from flask_restful import Api
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from config import config
db = SQLAlchemy()
def create_app(config_name):
app = Flask(__name__)
app.config.from_object(config[config_name])
api=Api(app, prefix="/api/v1")
db.init_app(app)
from app.resources.catcherDicts import Catcher
api.add_resource(Catcher, "/catcher")
return app
我希望能够在公司环境中运行 进行测试并运行 应用程序。因为即使使用 export FLASK_APP = main.py
命令导出应用程序路径 flask run
也不能 运行 应用程序。
错误:
ModuleNotFoundError: No module named 'main'
告诉您它无法从您的 cli.py
模块中找到 main.py
模块。发生这种情况是因为您使用以下代码行将应用程序的入口点设置为 main.py
:export FLASK_APP = main.py
。我怀疑这个环境变量不正确,我会直接尝试 运行 你的入口文件,看看它是否有效,如果是你的环境变量不正确。此外,如果您不是 运行 包含您的入口点的目录中的文件,请确保您的 <path>
设置正确,否则 flask run
将无法工作。
希望对您有所帮助!