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

虚拟环境中执行--edit-notebook时Snakemake前置代码运行失败

解决Snakemake Notebook编辑时AttributeGuard找不到的问题

问题原因

你在全局site-packages安装了Notebook和Snakemake,虚拟环境里单独装了适配工作流的Snakemake版本。执行snakemake --edit-notebook时,虽然命令是在虚拟环境中运行,但Jupyter Notebook默认加载的是全局环境的Snakemake(路径显示为$HOME/.local/lib/python3.12/site-packages/snakemake/io.py),而全局版本缺少虚拟环境版本中新增的AttributeGuard类,因此触发报错。

解决方法

方法1:在虚拟环境内安装Notebook

  1. 激活目标虚拟环境:
    source ~/.virtualenvs/<virtualenv>/bin/activate  # Linux/macOS
    # 或
    ~/.virtualenvs/<virtualenv>/Scripts/activate     # Windows
    
  2. 在虚拟环境中安装Notebook:
    pip install notebook
    
  3. 重新执行Snakemake命令:
    snakemake --cores 1 --edit-notebook <output>
    

此时Notebook会直接使用虚拟环境内的Snakemake依赖,不会再调用全局版本。

方法2:给全局Notebook添加虚拟环境内核

如果不想重复安装Notebook,可以把虚拟环境注册为Notebook的可用内核:

  1. 激活虚拟环境后安装ipykernel:
    pip install ipykernel
    
  2. 注册虚拟环境为Notebook内核:
    python -m ipykernel install --user --name=<自定义内核名称>
    
  3. 打开Notebook后,在顶部菜单栏选择Kernel > Change kernel,切换到刚注册的虚拟环境内核,再运行单元格。

验证方法

在Notebook中新增单元格,执行以下代码确认使用的是虚拟环境的Snakemake:

import snakemake
print(snakemake.__file__)

输出路径应指向~/.virtualenvs/<virtualenv>/lib/python3.x/site-packages/snakemake/__init__.py,而非全局路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:07:04