ModuleNotFoundError: No module named 'flask.scaffold'
tumluliu opened this issue · comments
Code
as from the official doc
from flask import Flask
from flask_restx import Resource, Api
app = Flask(__name__)
api = Api(app)
@api.route('/hello')
class HelloWorld(Resource):
def get(self):
return {'hello': 'world'}
if __name__ == '__main__':
app.run(debug=True)
Repro Steps (if applicable)
- init a new python project with poetry with
poetry new flask-restx-test
- enter the dir and
poetry add flask-restx
- copy and paste the minimal API sample code into
app.py
- enter the venv with
poetry shell
- launch the app.py with
python app.py
Expected Behavior
the app should be up and running
Actual Behavior
error
Error Messages/Stack Trace
error with:
Traceback (most recent call last):
File "$HOME/.cache/pypoetry/virtualenvs/flask-restx-test-gvqPH5Xl-py3.10/lib/python3.10/site-packages/flask_restx/api.py", line 18, in <module>
from flask.helpers import _endpoint_from_view_func
ImportError: cannot import name '_endpoint_from_view_func' from 'flask.helpers' ($HOME/.cache/pypoetry/virtualenvs/flask-restx-test-gvqPH5Xl-py3.10/lib/python3.10/site-packages/flask/helpers.py)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "$HOME/projects/flask-restx-test/app.py", line 2, in <module>
from flask_restx import Resource, Api
File "$HOME/.cache/pypoetry/virtualenvs/flask-restx-test-gvqPH5Xl-py3.10/lib/python3.10/site-packages/flask_restx/__init__.py", line 2, in <module>
from .api import Api # noqa
File "$HOME/.cache/pypoetry/virtualenvs/flask-restx-test-gvqPH5Xl-py3.10/lib/python3.10/site-packages/flask_restx/api.py", line 20, in <module>
from flask.scaffold import _endpoint_from_view_func
ModuleNotFoundError: No module named 'flask.scaffold'
Environment
- Python version: 3.10.11
- Flask version: 3.0.0
- Flask-RESTX version: 1.1.0
- Other installed Flask extensions: none
Additional Context
nothing else as this is the minimal sample. Could it be caused by some incompatibility?
same here
from flask 3.0.0, the scaffold
module was moved to sansio.scaffold
This bug can be fixed by replacing flask.scaffold
with flask.sansio.scaffold
on the line between 17 and 20 in the flask_restx/api.py
try:
from flask.helpers import _endpoint_from_view_func
except ImportError:
from flask.sansio.scaffold import _endpoint_from_view_func
Hi @tumluliu ,
in Scripts\Lib\site-packages\flask_restx\api.py
In line number 20 , I made following changes,
from flask.sansio.scaffold import _endpoint_from_view_func
from flask 3.0.0, the
scaffold
module was moved tosansio.scaffold
This bug can be fixed by replacingflask.scaffold
withflask.sansio.scaffold
on the line between 17 and 20 in theflask_restx/api.py
try: from flask.helpers import _endpoint_from_view_func except ImportError: from flask.sansio.scaffold import _endpoint_from_view_func
Thanks @vkdnjznd ! Worked like a charm. So I assume this would be included in 1.1.1
as a bugfix?
I just tested this project and found out that we may be blocked by pytest-dev/pytest-flask#167 before we could support Flask 3.0.0 in this project.
Confirmed. I am working on patch for missing import.
also getting this error
Python version: 3.9
Flask version: 1.1.2
Flask-RESTX version: 1.1.0
Note: If you really need hot-fix consider temporal use of restx-monkey. I put stuff there same as suggesting pull requests here in flask-restx
. Hot patcher restx-monkey
is in standard pipy repo.
Pyhton = 3.10.12
flask == 3.0.0
flask_restx == 0.5
Facing the similar issue.
File "/home/USERNAME/devnet/.venv/lib/python3.10/site-packages/flask_restx/api.py", line 23, in
from flask.scaffold import _endpoint_from_view_func
ModuleNotFoundError: No module named 'flask.scaffold'
It's working after modifying the line No 23 on file:
/home/USER/venv/lib/python3.10/site-packages/flask_restx/api.py
Before
from flask.scaffold import _endpoint_from_view_func
Now
from flask.sansio.scaffold import _endpoint_from_view_func