Skip to content

Cannot import name 'url_quote' from 'werkzeug.urls' #378

@jcpayne

Description

@jcpayne

Wonderful tutorial -- thanks so much. I ran into an import error on the catnip example, in the run command:

sudo docker run -p 8888:5000 <username>/catnip
#ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.8/site-packages/werkzeug/urls.py)

Docker Engine on Kubuntu

Activity

dwolf42

dwolf42 commented on Oct 2, 2023

@dwolf42

I second this, great tutorial so far, but I also get ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.10/site-packages/werkzeug/urls.py) when I run the docker file.
As you might see, even changing from python 3.9 in your example to 3.10 doesn't fix the issue.

I run Docker Engine on Ubuntu

Full error:
Traceback (most recent call last): File "/usr/scr/app/./app.py", line 1, in <module> from flask import Flask, render_template File "/usr/local/lib/python3.10/site-packages/flask/__init__.py", line 7, in <module> from .app import Flask as Flask File "/usr/local/lib/python3.10/site-packages/flask/app.py", line 28, in <module> from . import cli File "/usr/local/lib/python3.10/site-packages/flask/cli.py", line 18, in <module> from .helpers import get_debug_flag File "/usr/local/lib/python3.10/site-packages/flask/helpers.py", line 16, in <module> from werkzeug.urls import url_quote ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/usr/local/lib/python3.10/site-packages/werkzeug/urls.py)

dwolf42

dwolf42 commented on Oct 2, 2023

@dwolf42

@jcpayne jcpayne I found a workaround:

  • in your docker-curriculum / flask-app there is a file called requirements.txt
  • change the Flask version to 3.0.0 and set the Werkzeug version to 3.0.0.
    The file looks like this now:
Flask==3.0.0
Werkzeug==3.0.0
  • Save and exit.
  • again run docker build -t /catnip .
  • there will be a red warning about this is a development server which you can ignore.
  • type in your browser 127.0.0.1:5000
  • enjoy cat gif :)
jcpayne

jcpayne commented on Oct 2, 2023

@jcpayne
Author

That's great @dwolf42 , thanks! It works for me too.

yozsoy

yozsoy commented on Oct 3, 2023

@yozsoy

@dwolf42 fixed the issue for me

peter-kaagman

peter-kaagman commented on Dec 1, 2023

@peter-kaagman

Alas did not solve the issue for me. Gives me an error:
2.481 ERROR: Could not find a version that satisfies the requirement Werzeug==3.0.0 (from versions: none)
2.482 ERROR: No matching distribution found for Werzeug==3.0.0

Saw a mention of werzeug version 2.2.2, tried that version to, same error.

To bad, really liked the way this tutorial was going

Peter

rgibbins

rgibbins commented on Dec 3, 2023

@rgibbins

The following worked for me in the requirements.txt file:

Flask==2.0.2
Werkzeug==2.2.2

AlvaroBesadaFerrer

AlvaroBesadaFerrer commented on Apr 29, 2024

@AlvaroBesadaFerrer

@jcpayne jcpayne I found a workaround:

* in your docker-curriculum / flask-app there is a file called requirements.txt

* change the Flask version to 3.0.0 and set the Werkzeug version to 3.0.0.
  The file looks like this now:
Flask==3.0.0
Werkzeug==3.0.0
* Save and exit.

* again run docker build -t /catnip .

* there will be a red warning about this is a development server which you can ignore.

* type in your browser 127.0.0.1:5000

* enjoy cat gif :)

Hi @dwolf42 I wasn't able to solve the problem with this approach. Could you help me? I have tried all possible ways that I have found. I am using Ubuntu, Python 3.10.12, Flask 3.0.3, Werkzeug 3.0.2

dwolf42

dwolf42 commented on May 6, 2024

@dwolf42

Hey @Programador04, sorry for the late reply.
I would love to help you out here, but unfortunately I’m just someone who happens to find a workaround by chance.

If changing the stuff I mentioned inside the requirements.txt didn’t work for you, only @prakhar1989 could be able to give a helping hand.

bluereena

bluereena commented on Jul 5, 2024

@bluereena

You can change the Python version to 3.6 in the Dockerfile, it will work.

effel4105

effel4105 commented on Oct 23, 2024

@effel4105

this all not work... :(

mira-mirai

mira-mirai commented on Aug 8, 2025

@mira-mirai

oof. I thought docker was supposed to help with dependency hell.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Participants

      @yozsoy@rgibbins@jcpayne@peter-kaagman@dwolf42

      Issue actions

        Cannot import name 'url_quote' from 'werkzeug.urls' · Issue #378 · prakhar1989/docker-curriculum