2022-12-12
Posted by
ModuleNotFoundError
Traceback (most recent call last):
File "A:\abc\osaka\main\api\app.py", line 1, in <module>
import flask
ModuleNotFoundError: No module named 'flask'
これはflaskに限った事ではないですが、モジュールをインストールしていない事で起きるエラーです
解決策はモジュールをインストールする、それだけです
例えばimport flask_cors
でエラーが出たならpip install flask_cors
と、大抵インポートするモジュールの名前でインストールできます
(venv) A:\abc\osaka\main\api>pip install flask_cors
errorが出る場合はここで調べるとほぼ確実に一番上に出てきます
RuntimeError: Working outside of application context.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "A:\abc\osaka\main\api\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 885, in drop_all
self._call_for_binds(bind_key, "drop_all")
File "A:\abc\osaka\main\api\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 839, in _call_for_binds
engine = self.engines[key]
File "A:\abc\osaka\main\api\venv\lib\site-packages\flask_sqlalchemy\extension.py", line 628, in engines
app = current_app._get_current_object() # type: ignore[attr-defined]
File "A:\abc\osaka\main\api\venv\lib\site-packages\werkzeug\local.py", line 513, in _get_current_object
raise RuntimeError(unbound_message) from None
RuntimeError: Working outside of application context.
This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.
flask-SQLAlchemy
を使用してエラーが出た場合はflask-SQLAlchemy
のバージョンが原因です
解決策はバージョンを戻すことです
(venv) A:\abc\osaka\main\api>pip install Flask-SQLAlchemy==2.5.1
AttributeError: module 'sqlalchemy' has no attribute 'all'. Did you mean: 'file'?
>>> from app import db
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/abc/osaka/main/api/app.py", line 18, in <module>
db = SQLAlchemy(app) # dbの作成
^^^^^^^^^^^^^^^
File "/abc/osaka/main/api/venv/lib/python3.11/site-packages/flask_sqlalchemy/__init__.py", line 758, in __init__
_include_sqlalchemy(self, query_class)
File "/abc/osaka/main/api/venv/lib/python3.11/site-packages/flask_sqlalchemy/__init__.py", line 112, in _include_sqlalchemy
for key in module.__all__:
^^^^^^^^^^^^^^
AttributeError: module 'sqlalchemy' has no attribute '__all__'. Did you mean: '__file__'?
これはsqlalchemyのversionが原因です
出た場合は下記のコマンドを実行してみてください
(venv) A:\abc\osaka\main\api>pip install SQLAlchemy==1.4.41
(venv) apple@apple api % pip install SQLAlchemy==1.4.41
CORS ERROR
Access to XMLHttpRequest at 'http://127.0.0.1:5000/' from origin 'http://127.0.0.1:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
AxiosError: Network Error
at XMLHttpRequest.handleError (webpack-internal:///./node_modules/axios/lib/adapters/xhr.js:168:14)
これはcorsが原因で起きるエラーです、corsを設定することで回避できます
一番簡単な例をしたに載せます
(venv) A:\abc\osaka\main\api>pip install flask_cors
from flask_cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app, responses={r"/*": {"origins": "*"}})
このドキュメントどう?