如何以Winsows Service方式运行JupyterLab
有数据分析,数据挖掘,以及机器学习和深度学习实践经验的读者应该会对JupyterNotebook这一工具十分熟悉,而JupyterLab是它的升级版本,其提供了更具扩展性,更加可定制化的功能选项。
安装与启动JupyterLab的方法与JupyterNotebook一样简单。
应用安装
pipinstalljupyterlab
应用启动
jupyterlab
但这样的操作会带来一个问题,在以浏览器打开JupterLab应用窗口的同时,必须始终保证命令行窗口同样处于打开状态。如下图所示:
要想解决这样的问题,需要将JupyterLab以WindowsService的方式运行。
而Python代码要在Windows系统里创建Service的话要用到win32serviceutil这个类库。
类库安装
pipinstallpywin32
服务代码
将以下代码保存为jupyterlabservice.py文件,并放在配置目录之下,如C:\Users\Ken\.jupyter。
importinspect importlogging importos importwin32serviceutil fromjupyterlab.labappimportJupyterApp,LabApp current_file=os.path.abspath(inspect.getfile(inspect.currentframe())) os.chdir(os.path.dirname(current_file)) classJupyterLabService(win32serviceutil.ServiceFramework): _svc_name_="JupyterLab" _svc_display_name_="JupyterLabService" _svc_description_="JupyterLabService" 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() defSvcDoRun(self): self.app.config_dir="." self._init_lab() self.app.start() defSvcStop(self): self.app.stop() defSvcShutdown(self): self.SvcStop() if__name__=='__main__': win32serviceutil.HandleCommandLine(JupyterLabService)
服务安装
python.\jupyterlabservice.pyinstall
服务启动
python.\jupyterlabservice.pystart
访问localhost:8888网址,可以在浏览器中打开JupyterLab应用,但此时会遇到需要token认证的问题,如下图所示:
解决此问题方法是修改配置文件中的token参数。
首先是在配置目录中找到jupyter_notebook_config.py文件,如果没有的话可以通过以下命令创建。
jupyterlab--generate-config
然后找到c.NotebookApp.token一项,将其值设为空字符串。
##Tokenusedforauthenticatingfirst-timeconnectionstotheserver.
#
#ThetokencanbereadfromthefilereferencedbyJUPYTER_TOKEN_FILEorset
#directlywiththeJUPYTER_TOKENenvironmentvariable.
#
#Whennopasswordisenabled,thedefaultistogenerateanew,randomtoken.
#
#Settingtoanemptystringdisablesauthenticationaltogether,whichisNOT
#RECOMMENDED.
c.NotebookApp.token=''
重启相应服务后,再次访问localhost:8888网址,这下就正常了。
如果不想使用默认的8888端口,也可以在c.NotebookApp.port选项中将其值改成特定的端口号。
##Theportthenotebookserverwilllistenon(env:JUPYTER_PORT).
c.NotebookApp.port=9999
再次重启服务,这次便可以通过localhost:9999来访问JuypterLab应用了。
作者:Ken.W
出处:http://www.cnblogs.com/kenwoo
以上就是如何以WinsowsService方式运行JupyterLab的详细内容,更多关于运行JupyterLab的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。