我的 conda env 工作正常,直到今天我激活它时,当我运行
Jupyter Notebook
命令时,它显示导入错误。
尝试过这个stackoverflow,
重新安装 markupsafe 不起作用
考虑删除整个 conda env 并使用所需的库重新创建
没用
看了这个stackoverflow:
我将不胜感激任何帮助。谢谢你
如果您正在测试,请尝试降级到早期版本
pip install markupsafe==2.0.1
降级至:
pip install markupsafe==2.0.0
FWIW 在全新安装和降级
markupsafe
后我收到此错误并没有修复它,但是将 jinja2
从 2.10.1
升级到 3.1.2
似乎可以解决问题。
如果您尝试过,请先撤消降级。
pip install -U markupsafe
然后撞jinja2
pip install -U jinja2
您问题的根本原因可能源于两个软件生态系统之间的依赖管理冲突。根据错误消息,您的 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)
我开发了一个自动化工具来解决像您这样的问题,目前正在收集现实世界的问题。如果您能回复我,我将不胜感激。