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

GitHub Actions中用Papermill构建Notebook时依赖与本地包不可用求助

解决Papermill无法识别Poetry虚拟环境依赖与本地包的问题

核心原因

问题本质是Papermill未正确使用Poetry创建的虚拟环境:要么是全局安装的Papermill调用了系统Python,要么是虚拟环境上下文未传递给Notebook内核,导致依赖和本地包无法被找到。


解决方案1:将Papermill纳入Poetry项目依赖(推荐)

  1. 把Papermill添加为开发依赖:
    poetry add --dev papermill
    
  2. 重新安装所有依赖,确保Papermill在虚拟环境内:
    poetry install -E all
    
  3. 用poetry run执行Papermill:
    poetry run papermill SomeNotebook.ipynb output_folder/file.txt
    
    此方式下Papermill会直接使用Poetry虚拟环境的Python解释器,自动识别所有已安装的依赖和本地包。

解决方案2:为Poetry虚拟环境注册Jupyter内核

若不想将Papermill加入项目依赖,可通过注册内核让Papermill指定使用虚拟环境:

  1. 激活虚拟环境:
    source $(poetry env info --path)/bin/activate
    
  2. 安装ipykernel到虚拟环境:
    pip install ipykernel
    
  3. 将虚拟环境注册为Jupyter内核:
    python -m ipykernel install --user --name=poetry-env --display-name="Poetry Virtual Env"
    
  4. 运行Papermill时指定该内核:
    papermill --kernel poetry-env SomeNotebook.ipynb output_folder/file.txt
    
    或配合poetry run确保上下文正确:
    poetry run papermill --kernel poetry-env SomeNotebook.ipynb output_folder/file.txt
    

解决方案3:绕过poetry shell直接执行命令

poetry shell报Inappropriate ioctl for device多因非交互式终端环境导致,可直接调用虚拟环境的Python执行Papermill:

$(poetry env info --path)/bin/python -m papermill SomeNotebook.ipynb output_folder/file.txt

该命令直接使用虚拟环境的Python运行Papermill模块,完全绕开shell激活问题。


验证依赖可用性

执行完上述方案后,先验证虚拟环境的依赖是否正常加载:

poetry run python -c "import pandas; from mypackage.plots import *; print('Dependencies loaded successfully')"

若命令执行成功,说明依赖配置无误,再运行Papermill即可正常工作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:55:15