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

JupyterLab扩展开发:如何在index.ts中触发导出可执行脚本命令

存在的问题

  • activate回调中错误创建了新的JupyterLab实例,没有使用当前运行的JupyterLab实例,导致命令调用上下文错误
  • notebook:export-to-format 命令的参数传递错误,该命令需要两个必填参数:path(当前Notebook文件的路径)和format(导出格式标识,可执行脚本对应值为script),而非你使用的formatLabel
  • 插件声明的依赖ITranslator、INotebookTracker没有实际使用,也没有在activate回调中接收对应的实例参数

修正后的完整代码

import {
  JupyterFrontEnd,
  JupyterFrontEndPlugin,
} from '@jupyterlab/application';

import { ToolbarButton } from "@jupyterlab/apputils";
import { DocumentRegistry } from "@jupyterlab/docregistry";
import { INotebookModel, NotebookPanel } from "@jupyterlab/notebook";

import { IDisposable } from "@lumino/disposable";

export class ButtonExtension implements DocumentRegistry.IWidgetExtension<NotebookPanel, INotebookModel> {
    
  constructor(app: JupyterFrontEnd) {
      this.app = app;
  }
    
  readonly app: JupyterFrontEnd;

  createNew(panel: NotebookPanel, context: DocumentRegistry.IContext<INotebookModel>): IDisposable {
     const { commands } = this.app;
     const command = 'notebook:export-to-format'

     // 创建工具栏按钮
     let mybutton = new ToolbarButton({
         label: 'Measure Power Usage',
         onClick: async () => { 
             alert('You did it');
             // 传递正确的命令参数
             await commands.execute(command, {
                 path: context.path,
                 format: 'script'
             });
          }
       });

    // 将按钮插入Notebook工具栏
    panel.toolbar.insertItem(10, 'MeasurePowerUsage', mybutton);
    console.log("MeasPowerUsage activated");

    return mybutton;
  }
}

/**
 * greencode-ext3扩展的初始化配置
 */
const yourPlugin: JupyterFrontEndPlugin<void> = {
  id: '@your-org/plugin-name',
  autoStart: true,
  // 移除未使用的依赖声明
  requires: [],
  activate: (app: JupyterFrontEnd) => {
    // 直接传入当前运行的Jupyter实例
    const your_button = new ButtonExtension(app);
    app.docRegistry.addWidgetExtension('Notebook', your_button);
  }
}

export default yourPlugin;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 15:27:00