无法从“markupsafe”导入名称“soft_unicode” [已解决]
Cannot import name ‘soft_unicode’ from ‘markupsafe’ [Solved]
出现“ImportError: cannot import name ‘soft_unicode’ from ‘markupsafe’”是因为该方法在2.1.0 版soft_unicode
中已被弃用。markupsafe
要解决该错误,请运行pip install markupsafe==2.0.1
命令安装markupsafe
支持的最新版本soft_unicode
。
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/home/borislav/Desktop/bobbyhadz_python/venv/lib/python3.11/site-packages/markupsafe/__init__.py)
文档的更改部分显示
该方法已被弃用并从 version 开始删除。markupsafe
soft_unicode
2.1.0
固定markupsafe
到版本2.0.1
您应该尝试的第一件事是安装markupsafe2.0.1
版本
。
pip install markupsafe==2.0.1 pip3 install markupsafe==2.0.1 # 👇️ if you don't have pip in PATH environment variable python -m pip install markupsafe==2.0.1 python3 -m pip install markupsafe==2.0.1 # 👇️ py alias (Windows) py -m pip install markupsafe==2.0.1 # 👇️ for Jupyter Notebook !pip install markupsafe==2.0.1
运行该命令时,您可能会收到一条错误消息,指出“错误:pip 的依赖项解析器当前未考虑所有已安装的包。” .
2.0.1
的版本也已成功安装。 markupsafe
如果您有
requirements.txt文件,则可以添加以下行。
markupsafe==2.0.1
运行pip install
带有--force-reinstall
选项的命令
您也可以尝试在安装版本时pip install
使用
–force-reinstall选项运行命令2.0.1
。
pip install markupsafe==2.0.1 --force-reinstall pip3 install markupsafe==2.0.1 --force-reinstall # 👇️ if you don't have pip in PATH environment variable python -m pip install markupsafe==2.0.1 --force-reinstall python3 -m pip install markupsafe==2.0.1 --force-reinstall py -m pip install markupsafe==2.0.1 --force-reinstall # 👇️ for Jupyter Notebook !pip install markupsafe==2.0.1 --force-reinstall
解决使用 AWS SAM CLI 时的错误
如果您在使用AWS SAM CLI时遇到错误,则必须升级您的 SAM CLI 版本,因为 SAM CLI v1.38 中修复了一个问题。
pip install --user --upgrade aws-sam-cli pip3 install --user --upgrade aws-sam-cli python -m pip install --user --upgrade aws-sam-cli python3 -m pip install --user --upgrade aws-sam-cli # 👇️ py alias (Windows) py -m pip install --user --upgrade aws-sam-cli
请注意,建议使用
文档中的官方操作系统特定安装程序安装 AWS SAM CLI 。
如果您使用 GitHub 操作,则可以明确指定版本。
- uses: aws-actions/setup-sam@v1 with: version: 1.37.0
使用 pip 不是安装 SAM CLI 的推荐方法,因为它通常会导致问题。
重新安装markupsafe
模块
如果错误没有解决,尝试先卸载markupsafe
再安装版本2.0.1
。
pip uninstall markupsafe pip3 uninstall markupsafe pip install markupsafe==2.0.1 pip3 install markupsafe==2.0.1
您可以使用该pip show markupsafe
命令检查安装了哪个版本的软件包。
pip show markupsafe pip3 show markupsafe python -m pip show markupsafe python3 -m pip show markupsafe
如果2.0.1
安装了 version,则错误应该已解决。
markupsafe
2.0.1
args: AIRFLOW_DEPS: gcp_api,s3 PYTHON_DEPS: MarkupSafe==2.0.1
如果使用 Flask 和 Jinja2,请重新安装它们
如果错误仍然存在并且您在使用
Flask和
Jinja2时得到它,请尝试卸载它们并安装最新版本。
pip uninstall Flask Jinja2 pip uninstall Flask Jinja2 pip install Flask Jinja2 --upgrade pip3 install Flask Jinja2 --upgrade
删除该soft_unicode
方法后,它被替换为soft_str
.
改用markupsafe.soft_str
方法
如果您在自己的代码中调用该方法,则可以改用该
markupsafe.soft_str()
方法。
from markupsafe import escape, soft_str value = escape('<example>') print(escape(str(value))) # 👉️ &lt;example&gt; print(escape(soft_str(value))) # 👉️ <example>
该markupsafe.soft_str()
方法将对象转换为字符串,保留字符串
Markup
,而不是将其转换回基本字符串。
该字符串被标记为安全并且不会再次转义。
如果您宁愿使用该soft_str
方法而不是soft_unicode
,您可以将markupsafe
包升级到最新版本。
pip install markupsafe --upgrade pip3 install markupsafe --upgrade # 👇️ if you don't have pip in PATH environment variable python -m pip install markupsafe --upgrade python3 -m pip install markupsafe --upgrade # 👇️ py alias (Windows) py -m pip install markupsafe --upgrade # 👇️ for Jupyter Notebook !pip install markupsafe --upgrade