1、项目结构
jupyter_code/
├── jupyter_code/
│ ├── __init__.py # 修复后的代码
│ ├── handlers.py # 修复后的代码
│ └── __pycache__/
├── setup.py # 修复后的代码
├── MANIFEST.in # (可选)包含额外文件
├── README.md # (可选)文档
├── test_extension.py # 测试脚本(没有做)
└── verify_extension.py # 验证脚本(没有做)
# setup.py
from setuptools import setup
setup(
name="jupyter_code",
version="0.1.0",
packages=["jupyter_code"],
install_requires=["jupyterlab", "tornado"],
entry_points={
"jupyter_server_extension": [
"jupyter_code = jupyter_code"
]
},
)
# __init__.py
from .handlers import HelloWorldHandler
def load_jupyter_server_extension(server_app):
"""用于加载Jupyter服务器扩展的函数。"""
handlers = [
(r"/jupyter_code/hello", HelloWorldHandler)
]
server_app.web_app.add_handlers(".*$", handlers)
server_app.log.info("jupyter_code 扩展已加载")
# handlers.py
from jupyter_server.base.handlers import APIHandler
from tornado import web
class HelloWorldHandler(APIHandler):
@web.authenticated
def get(self):
self.finish("Hello, world!")
2、然后打包安装。
python setup.py bdist_wheel
pip install dist\jupyter_code-0.0.1-py3-none-any.whl
网上的注册扩展做法
jupyter server extension enable jupyter_code
测试后发现不起作用
3. 手动配置扩展
如果扩展已安装但未自动注册,可以手动配置:
A. 创建配置文件
# 生成默认配置文件(如果不存在)
jupyter server --generate-config
# 编辑配置文件
vim ~/.jupyter/jupyter_server_config.py
B. 添加扩展配置
# 在 jupyter_server_config.py 中添加
c.ServerApp.jpserver_extensions = {
'jupyter_code': True,
}