python-restx / flask-restx

Fork of Flask-RESTPlus: Fully featured framework for fast, easy and documented API development with Flask
https://flask-restx.readthedocs.io/en/latest/
Other
2.14k stars 333 forks source link

ModuleNotFoundError: No module named 'flask.scaffold' #567

Closed tumluliu closed 9 months ago

tumluliu commented 11 months ago

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)

  1. init a new python project with poetry with poetry new flask-restx-test
  2. enter the dir and poetry add flask-restx
  3. copy and paste the minimal API sample code into app.py
  4. enter the venv with poetry shell
  5. 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

Additional Context

nothing else as this is the minimal sample. Could it be caused by some incompatibility?

arunkhattri commented 11 months ago

same here

vkdnjznd commented 11 months ago

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
binary1Ne commented 11 months ago

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

tumluliu commented 11 months ago

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

Thanks @vkdnjznd ! Worked like a charm. So I assume this would be included in 1.1.1 as a bugfix?

peter-doggart commented 11 months ago

Yes, it will be fixed in the next release. I’m also trying to solve the json schema issues stated elsewhere.

However, I’m not near a development computer this week, so it’s going to be a few days before I can get around to it unfortunately.

On Sun, Oct 1, 2023 at 12:34, Lu Liu @.***(mailto:On Sun, Oct 1, 2023 at 12:34, Lu Liu < wrote:

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

Thanks @.***(https://github.com/vkdnjznd) ! Worked like a charm. So I assume this would be included in 1.1.1 as a bugfix?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>

threeal commented 11 months ago

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.

Ryu-CZ commented 11 months ago

Confirmed. I am working on patch for missing import.

dbybanez commented 11 months ago

also getting this error

Python version: 3.9 Flask version: 1.1.2 Flask-RESTX version: 1.1.0

Ryu-CZ commented 11 months ago

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.

devopsnetworks commented 10 months ago

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'

devopsnetworks commented 10 months ago

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