问题描述

        今天遇到这样一个问题:ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/home/visionx/anaconda3/envs/sentibase/lib/python3.8/site-packages/werkzeug/urls.py),具体问题如下:

Traceback (most recent call last):
  File "/media/visionx/monica/project24/formoney/sentiment-based-product-recomendation-model/app.py", line 3, in <module>
    from flask import Flask, request, render_template, jsonify
  File "/home/visionx/anaconda3/envs/sentibase/lib/python3.8/site-packages/flask/__init__.py", line 7, in <module>
    from .app import Flask as Flask
  File "/home/visionx/anaconda3/envs/sentibase/lib/python3.8/site-packages/flask/app.py", line 28, in <module>
    from . import cli
  File "/home/visionx/anaconda3/envs/sentibase/lib/python3.8/site-packages/flask/cli.py", line 18, in <module>
    from .helpers import get_debug_flag
  File "/home/visionx/anaconda3/envs/sentibase/lib/python3.8/site-packages/flask/helpers.py", line 16, in <module>
    from werkzeug.urls import url_quote
ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/home/visionx/anaconda3/envs/sentibase/lib/python3.8/site-packages/werkzeug/urls.py)

         这个问题的原因也很明显,就是说在导包的时候出现了问题,那遇到这种问题怎么办呢?

原因分析及解决办法

        先问一下chatgpt吧:ImportError: cannot import name 'url_quote' from 'werkzeug.urls' (/home/visionx/anaconda3/envs/sentibase/lib/python3.8/site-packages/werkzeug/urls.py)这是什么原因,怎么解决?

ImportError: cannot import name 'url_quote' 表明在尝试从 werkzeug.urls 中导入 url_quote 函数时失败了。

这个问题可能是由于你使用的 Werkzeug 版本不匹配或环境配置问题引起的。

  1. Werkzeug 版本问题url_quote 是 Werkzeug 中的一个函数,但在某些较旧的版本中可能不存在或已更改名称。请确保你使用的是最新版本的 Werkzeug,并且该函数在你的版本中可用。

  2. 环境配置问题:有时候,环境配置或其他库的冲突可能会导致无法正确导入函数。确保你的环境配置正确,并且没有其他库与 Werkzeug 发生冲突。

为了解决这个问题,你可以尝试以下几种方法:

  • 升级 Werkzeug:尝试通过以下命令升级 Werkzeug 到最新版本:

    pip install --upgrade werkzeug
  • 检查依赖项:检查你的项目依赖项和环境中是否存在其他库与 Werkzeug 或其依赖项发生冲突。确保没有删除了 Werkzeug 中的任何重要部分。

  • 查看文档:查看 Werkzeug 的文档以了解关于 url_quote 函数的信息,可能是该函数已被弃用或更改了名称。

如果以上方法都无法解决问题,你可能需要进一步调查,并根据具体情况采取适当的措施。提供更多关于你的环境和使用情况的信息可能有助于我们更准确地找到问题并提供解决方案。

        简单来说,就是需要把这个给升级了 。在搜一下谷歌呢?

        也有,点开一看您猜怎么着:

        重点在哪里呢?

I had the same problem. It is because Werkzeug 3.0.0 was released and Flask doesn't specify the dependency correctly (requirements says Werkzeug>=2.2.0). This is why, Werkzeug 3.0.0 is still installed and Flask 2.2.2 isn't made for Werkzeug 3.0.0.

Solution: Just set a fix version for Werkzeug such as Werkzeug==2.2.2 in your requirements.txt and it should work.

        解决办法一、降级Werkzeug==2.2.2
pip install Werkzeug==2.2.2
        解决办法二、升级flask

        因为当前的版本是Flask==2.0.2,升级一下就ok了

pip install --upgrade flask

相关链接
python - Why did Flask start failing with "ImportError: cannot import name 'url_quote' from 'werkzeug.urls'"? - Stack Overflowicon-default.png?t=N7T8https://stackoverflow.com/questions/77213053/why-did-flask-start-failing-with-importerror-cannot-import-name-url-quote-fr[BUG] ImportError: cannot import name 'url_quote' from 'werkzeug.urls' · Issue #389 · Sanster/IOPaint · GitHub(base) C:\Users\28622>conda activate lama (lama) C:\Users\28622>lama-cleaner --model=lama --device=cuda --port=8080 - Platform: Windows-10-10.0.22621-SP0 - Python version: 3.10.11 - torch: 1.13.1+cu117 - torchvision: 0.14.1+cu117 - Pillo...icon-default.png?t=N7T8https://github.com/Sanster/IOPaint/issues/389

完结撒花

        有人陪伴的日子真好啊

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐