出现导入错误:运行“jupyter notebook”时无法从 conda 环境的“markupsafe”导入名称“soft_unicode”

问题描述 投票:0回答:3
  • 我的 conda env 工作正常,直到今天我激活它时,当我运行

    Jupyter Notebook
    命令时,它显示导入错误。

  • 尝试过这个stackoverflow

    • 重新安装 markupsafe 不起作用

    • 考虑删除整个 conda env 并使用所需的库重新创建

    • 没用

  • 看了这个stackoverflow

    • 这似乎不是我遇到的问题。

    我将不胜感激任何帮助。谢谢你

python jupyter-notebook conda miniconda
3个回答
0
投票

如果您正在测试,请尝试降级到早期版本

pip install markupsafe==2.0.1

降级至:

pip install markupsafe==2.0.0

0
投票

FWIW 在全新安装和降级

markupsafe
后我收到此错误并没有修复它,但是将
jinja2
2.10.1
升级到
3.1.2
似乎可以解决问题。

如果您尝试过,请先撤消降级。

 pip install -U markupsafe

然后撞jinja2

 pip install -U jinja2

0
投票

您问题的根本原因可能源于两个软件生态系统之间的依赖管理冲突。根据错误消息,您的 markupsafe 是使用 pip 安装在路径

/home/azriel-ubuntu-wsl/.local/python3.8/dist-packages/markupsafe/
处。依赖它的jinja2是使用apt安装在路径
/usr/lib/python3/dist-packages/jinja2
。两者的版本不兼容。事实上,系统中存在jinja2正确依赖的markupsafe版本,但是Python解释器优先考虑pip安装的markupsafe,导致这个问题。这个问题一般有两种解决方案:(1)使用pip卸载markupsafe,然后使用apt重新安装,或者使用apt卸载jinja2并使用pip重新安装。 (2)使用Python的imp模块自定义路径,在导入jinja2之前从apt路径导入markupsafe。示例如下:

import imp
path = ['/usr/lib/python3/dist-packages']
fp, pathname, description = imp.find_module('markupsafe', path)
imp.load_module("markupsafe", fp, pathname, description)

我开发了一个自动化工具来解决像您这样的问题,目前正在收集现实世界的问题。如果您能回复我,我将不胜感激。

© www.soinside.com 2019 - 2024. All rights reserved.