You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Conda环境中因QGIS Python安装导致ipykernel安装失败求助

问题描述

我尝试在Conda环境icepyx中安装ipykernel,以便在Jupyter Notebook中使用,但运行命令python -m ipykernel install --user --name=myenv时出现错误,启动Jupyter Notebook也触发相同问题。错误核心是QGIS的Python环境与Conda环境冲突,具体报错信息如下:

Error processing line 1 of /Users/grantmacdonald/opt/anaconda3/envs/icepyx/lib/python3.11/site-packages/matplotlib-3.7.1-py3.11-nspkg.pth:

Fatal Python error: init_import_site: Failed to import the site module
Python runtime state: initialized
Traceback (most recent call last):
  File "<frozen site>", line 186, in addpackage
  File "<string>", line 1, in <module>
  File "<frozen importlib.util>", line 2, in <module>
ModuleNotFoundError: No module named 'importlib._abc'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 982, in exec_module
  File "<frozen site>", line 616, in <module>
  File "<frozen site>", line 603, in main
  File "<frozen site>", line 384, in addsitepackages
  File "<frozen site>", line 226, in addsitedir
  File "<frozen site>", line 196, in addpackage
  File "/Applications/QGIS.app/Contents/Resources/python/traceback.py", line 5, in <module>
    import linecache
  File "/Applications/QGIS.app/Contents/Resources/python/linecache.py", line 11, in <module>
    import tokenize
  File "/Applications/QGIS.app/Contents/Resources/python/tokenize.py", line 32, in <module>
    import re
  File "/Applications/QGIS.app/Contents/Resources/python/re.py", line 125, in <module>
    import sre_compile
  File "/Applications/QGIS.app/Contents/Resources/python/sre_compile.py", line 17, in <module>
    assert _sre.MAGIC == MAGIC, "SRE module mismatch"
           ^^^^^^^^^^^^^^^^^^^
AssertionError: SRE module mismatch
解决方案

核心原因

QGIS自带的Python路径被加入系统环境变量,导致Conda环境运行时优先调用QGIS的Python模块,而QGIS的Python版本(通常较旧)与Conda环境的Python3.11不兼容,引发模块版本不匹配问题。

步骤1:临时屏蔽QGIS路径完成安装

在终端执行以下命令,先清除可能指向QGIS的Python路径,再安装ipykernel:

unset PYTHONPATH
conda activate icepyx
python -m ipykernel install --user --name=icepyx --display-name="Python (icepyx)"

步骤2:永久隔离Conda与QGIS环境

编辑shell配置文件(如~/.zshrc或~/.bash_profile),添加以下代码,确保激活Conda环境时自动屏蔽QGIS的Python路径:

# 激活Conda环境时暂存并清除PYTHONPATH
conda activate() {
    local OLD_PYTHONPATH=$PYTHONPATH
    unset PYTHONPATH
    command conda activate "$@"
    export OLD_PYTHONPATH
}

# 退出Conda环境时恢复原PYTHONPATH
conda deactivate() {
    command conda deactivate "$@"
    export PYTHONPATH=$OLD_PYTHONPATH
}

保存后执行source ~/.zshrc(对应你的配置文件)使设置生效。

步骤3:重新安装并验证

激活Conda环境后,强制重装ipykernel确保环境纯净:

conda activate icepyx
pip install --force-reinstall ipykernel
python -m ipykernel install --user --name=icepyx --display-name="Python (icepyx)"

启动Jupyter Notebook,检查是否能正常选择Python (icepyx)内核运行代码。

备选方案:直接指定Conda Python路径

如果临时清除PYTHONPATH无效,直接使用Conda环境的Python绝对路径执行命令:

/Users/grantmacdonald/opt/anaconda3/envs/icepyx/bin/python -m ipykernel install --user --name=icepyx --display-name="Python (icepyx)"

内容的提问来源于stack exchange,提问作者Beardsley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:44:57