如何以Winsows Service方式運(yùn)行JupyterLab
有數(shù)據(jù)分析,數(shù)據(jù)挖掘,以及機(jī)器學(xué)習(xí)和深度學(xué)習(xí)實(shí)踐經(jīng)驗(yàn)的讀者應(yīng)該會(huì)對(duì)Jupyter Notebook這一工具十分熟悉,而JupyterLab是它的升級(jí)版本,其提供了更具擴(kuò)展性,更加可定制化的功能選項(xiàng)。
安裝與啟動(dòng)JupyterLab的方法與Jupyter Notebook一樣簡(jiǎn)單。
應(yīng)用安裝
pip install jupyterlab
應(yīng)用啟動(dòng)
jupyter lab
但這樣的操作會(huì)帶來(lái)一個(gè)問(wèn)題,在以瀏覽器打開(kāi)JupterLab應(yīng)用窗口的同時(shí),必須始終保證命令行窗口同樣處于打開(kāi)狀態(tài)。如下圖所示:

要想解決這樣的問(wèn)題,需要將JupyterLab以Windows Service的方式運(yùn)行。
而Python代碼要在Windows系統(tǒng)里創(chuàng)建Service的話要用到win32serviceutil這個(gè)類庫(kù)。
類庫(kù)安裝
pip install pywin32
服務(wù)代碼
將以下代碼保存為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)
服務(wù)安裝
python .\jupyterlabservice.py install
服務(wù)啟動(dòng)
python .\jupyterlabservice.py start
訪問(wèn)localhost:8888網(wǎng)址,可以在瀏覽器中打開(kāi)JupyterLab應(yīng)用,但此時(shí)會(huì)遇到需要token認(rèn)證的問(wèn)題,如下圖所示:

解決此問(wèn)題方法是修改配置文件中的token參數(shù)。
首先是在配置目錄中找到jupyter_notebook_config.py文件,如果沒(méi)有的話可以通過(guò)以下命令創(chuàng)建。
jupyter lab --generate-config
然后找到c.NotebookApp.token一項(xiàng),將其值設(shè)為空字符串。
## 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 = ''
重啟相應(yīng)服務(wù)后,再次訪問(wèn)localhost:8888網(wǎng)址,這下就正常了。

如果不想使用默認(rèn)的8888端口,也可以在c.NotebookApp.port選項(xiàng)中將其值改成特定的端口號(hào)。
## The port the notebook server will listen on (env: JUPYTER_PORT).
c.NotebookApp.port = 9999
再次重啟服務(wù),這次便可以通過(guò)localhost:9999來(lái)訪問(wèn)JuypterLab應(yīng)用了。
作者:Ken.W
出處:http://www.cnblogs.com/kenwoo
以上就是如何以Winsows Service方式運(yùn)行JupyterLab的詳細(xì)內(nèi)容,更多關(guān)于運(yùn)行JupyterLab的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- pip?install?jupyterlab失敗的原因問(wèn)題及探索
- Pycharm關(guān)于遠(yuǎn)程JupyterLab以及JupyterHub登錄問(wèn)題
- JupyterLab遠(yuǎn)程密碼訪問(wèn)實(shí)現(xiàn)
- python數(shù)據(jù)可視化JupyterLab實(shí)用擴(kuò)展程序Mito
- 手把手教你配置JupyterLab 環(huán)境的實(shí)現(xiàn)
- Windows 下更改 jupyterlab 默認(rèn)啟動(dòng)位置的教程詳解
- 解決jupyterLab打開(kāi)后出現(xiàn)Config option `template_path`not recognized by `ExporterCollapsibleHeadings`問(wèn)題
相關(guān)文章
解決import tensorflow as tf 出錯(cuò)的原因
這篇文章主要介紹了解決import tensorflow as tf 出錯(cuò)的原因,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法
今天小編就為大家分享一篇Python 把序列轉(zhuǎn)換為元組的函數(shù)tuple方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06
numpy數(shù)據(jù)類型dtype轉(zhuǎn)換實(shí)現(xiàn)
這篇文章主要介紹了numpy數(shù)據(jù)類型dtype轉(zhuǎn)換實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
Python實(shí)現(xiàn)構(gòu)建一個(gè)儀表板的示例代碼
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)構(gòu)建一個(gè)儀表板,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下2023-03-03
python?使用turtle實(shí)現(xiàn)實(shí)時(shí)鐘表并生成exe
這篇文章主要為大家詳細(xì)介紹了python使用Turtle庫(kù)繪制動(dòng)態(tài)鐘表,并有需要可以生成exe可執(zhí)行文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
利用Python實(shí)現(xiàn)自動(dòng)化監(jiān)控文件夾完成服務(wù)部署
本篇文章將為大家詳細(xì)介紹如何利用Python語(yǔ)言實(shí)現(xiàn)監(jiān)控文件夾,以此輔助完成服務(wù)的部署動(dòng)作,文中的示例代碼講解詳細(xì),感興趣的可以嘗試一下2022-07-07
使用 Python 實(shí)現(xiàn)簡(jiǎn)單的 switch/case 語(yǔ)句的方法
這篇文章主要介紹了用 Python 實(shí)現(xiàn)簡(jiǎn)單的 switch/case 語(yǔ)句的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09
利用Python批量壓縮png方法實(shí)例(支持過(guò)濾個(gè)別文件與文件夾)
這篇文章主要給大家介紹了關(guān)于利用Python批量壓縮png的相關(guān)資料,文中介紹的方法支持過(guò)濾個(gè)別文件與文件夾,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面跟著小編來(lái)一起看看吧。2017-07-07

