如何以Winsows Service方式运行JupyterLab


Posted in Python onAugust 30, 2020

有数据分析,数据挖掘,以及机器学习和深度学习实践经验的读者应该会对Jupyter Notebook这一工具十分熟悉,而JupyterLab是它的升级版本,其提供了更具扩展性,更加可定制化的功能选项。

安装与启动JupyterLab的方法与Jupyter Notebook一样简单。

应用安装

pip install jupyterlab

应用启动

jupyter lab

但这样的操作会带来一个问题,在以浏览器打开JupterLab应用窗口的同时,必须始终保证命令行窗口同样处于打开状态。如下图所示:

如何以Winsows Service方式运行JupyterLab

要想解决这样的问题,需要将JupyterLab以Windows Service的方式运行。

而Python代码要在Windows系统里创建Service的话要用到win32serviceutil这个类库。

类库安装

pip install pywin32

服务代码

将以下代码保存为jupyterlabservice.py文件,并放在配置目录之下,如C:\Users\Ken\.jupyter

import inspect
import logging
import os
import win32serviceutil
from jupyterlab.labapp import JupyterApp, LabApp

current_file = os.path.abspath(inspect.getfile(inspect.currentframe()))
os.chdir(os.path.dirname(current_file))


class JupyterLabService(win32serviceutil.ServiceFramework):

  _svc_name_ = "JupyterLab"
  _svc_display_name_ = "Jupyter Lab Service"
  _svc_description_ = "Jupyter Lab Service"

  def __init__(self, args):
    super().__init__(args)
    self.app = LabApp()

  def _init_lab(self):
    JupyterApp.initialize(self.app)
    self.app.init_configurables()
    self.app.init_components()
    self.app.init_webapp()
    self.app.init_terminals()
    self.app.init_server_extensions()
    self.app.init_mime_overrides()
    self.app.init_shutdown_no_activity()

  def SvcDoRun(self):
    self.app.config_dir = "."
    self._init_lab()
    self.app.start()

  def SvcStop(self):
    self.app.stop()

  def SvcShutdown(self):
    self.SvcStop()


if __name__ == '__main__':
  win32serviceutil.HandleCommandLine(JupyterLabService)

服务安装

python .\jupyterlabservice.py install

服务启动

python .\jupyterlabservice.py start

访问localhost:8888网址,可以在浏览器中打开JupyterLab应用,但此时会遇到需要token认证的问题,如下图所示:

如何以Winsows Service方式运行JupyterLab

解决此问题方法是修改配置文件中的token参数。

首先是在配置目录中找到jupyter_notebook_config.py文件,如果没有的话可以通过以下命令创建。

jupyter lab --generate-config

然后找到c.NotebookApp.token一项,将其值设为空字符串。

## Token used for authenticating first-time connections to the server.
#
# The token can be read from the file referenced by JUPYTER_TOKEN_FILE or set
# directly with the JUPYTER_TOKEN environment variable.
#
# When no password is enabled, the default is to generate a new, random token.
#
# Setting to an empty string disables authentication altogether, which is NOT
# RECOMMENDED.
c.NotebookApp.token = ''

重启相应服务后,再次访问localhost:8888网址,这下就正常了。

如何以Winsows Service方式运行JupyterLab

如果不想使用默认的8888端口,也可以在c.NotebookApp.port选项中将其值改成特定的端口号。

## The port the notebook server will listen on (env: JUPYTER_PORT).
c.NotebookApp.port = 9999

再次重启服务,这次便可以通过localhost:9999来访问JuypterLab应用了。

作者:Ken.W
出处:http://www.cnblogs.com/kenwoo

以上就是如何以Winsows Service方式运行JupyterLab的详细内容,更多关于运行JupyterLab的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
初步剖析C语言编程中的结构体
Jan 16 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
python 调用c语言函数的方法
Sep 29 Python
Python实现PS图像调整颜色梯度效果示例
Jan 25 Python
对python以16进制打印字节数组的方法详解
Jan 24 Python
python hough变换检测直线的实现方法
Jul 12 Python
基于python框架Scrapy爬取自己的博客内容过程详解
Aug 05 Python
基于pytorch的lstm参数使用详解
Jan 14 Python
PyCharm永久激活方式(推荐)
Sep 22 Python
OpenCV灰度化之后图片为绿色的解决
Dec 01 Python
Jmeter调用Python脚本实现参数互相传递的实现
Jan 22 Python
python实现学员管理系统(面向对象版)
Jun 05 Python
selenium切换标签页解决get超时问题的完整代码
Aug 30 #Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 #Python
python开根号实例讲解
Aug 30 #Python
python一些性能分析的技巧
Aug 30 #Python
python脚本第一行如何写
Aug 30 #Python
golang/python实现归并排序实例代码
Aug 30 #Python
python创建文本文件的简单方法
Aug 30 #Python
You might like
php下实现农历日历的代码
2007/03/07 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
PHP爆绝对路径方法收集整理
2012/09/17 PHP
javascript学习笔记(十三) js闭包介绍(转)
2012/06/20 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
JS中Location使用详解
2015/05/12 Javascript
iPhone手机上搭建nodejs服务器步骤方法
2015/07/06 NodeJs
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
js如何找出字符串中的最长回文串
2018/06/04 Javascript
纯javascript实现选择框的全选与反选功能
2019/04/08 Javascript
vuejs中父子组件之间通信方法实例详解
2020/01/17 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
在Python程序和Flask框架中使用SQLAlchemy的教程
2016/06/06 Python
python:socket传输大文件示例
2017/01/18 Python
详解Python中for循环是如何工作的
2017/06/30 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
Python 中的pygame安装与配置教程详解
2020/02/10 Python
Python模拟键盘输入自动登录TGP
2020/11/27 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
阿迪达斯意大利在线商店:adidas意大利
2016/09/19 全球购物
给民警的表扬信
2014/01/08 职场文书
教师辞职报告范文
2014/01/20 职场文书
公司活动邀请函
2014/01/24 职场文书
美容院经理岗位职责
2014/04/03 职场文书
《金子》教学反思
2014/04/13 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
责任书格式
2015/01/29 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
企业战略合作意向书
2015/05/08 职场文书
Web前端:CSS最强总结 附详细代码
2021/03/31 HTML / CSS
CSS中calc(100%-100px)不加空格不生效
2023/05/07 HTML / CSS