摘要:一般都是作為后臺服務運行,以便隨時使用,如果你在自己的家用機上運行,它要占一個任務欄格子,而且還要一直打開一個難看的黑框框命令行界面,有時候一不小心就點到它。
原文發表于我的博客 https://blog.kaciras.net/article/38
隨著AI的大潮,Python大火大熱,學了Py,那就是學了寫人工智能的語言,而人工智能著名競賽Kaggle欽定的在線筆記本:Jupyter可謂是每個AI開發者必備的工具了。用了Jupyter,你才進入了AI的行業;用了Jupyter,你才能與國際賽事接軌;用了Jupyter,你才能寫吳恩達的在線作業!(這段請勿當真)
你是不是立刻就想裝上它了?
pip install jupyter jupyter notebook
OK!是不是很簡單?當然你要是裝的Anaconda,那就更簡單了,直接自帶,啟動即可。什么你連Python都沒裝?
好的現在它已經運行起來了,但如果你用的是Windows,或者你準備把它放到Windows系統的服務器上,那還有點特別小的問題。Jupyter一般都是作為后臺服務運行,以便隨時使用,如果你在自己的家用機上運行,它要占一個任務欄格子,而且還要一直打開一個難看的黑框框命令行界面,有時候一不小心就點到它。這是很煩人的,一個合格的筆記本應該學聰明點,在我想用的時候才出來,其他時間呆在后臺睡大覺就好。
而在Windows系統的服務器上運行Jupyter,也有個小問題,大家都知道,想在Windows上活得持久,那就得當個服務,不然一登出所有的用戶進程全部都會停掉,而且萬一服務器他自己突然不舒服,想重啟一下(比如最新版Windows的自動更新),還得讓我們的Jupyter也隨系統啟動(不是隨用戶登錄啟動哦)。
想想其他的第三方服務,什么Tomcat啊,裝完直接給你塞個Windows服務,那叫一個方便,你Jupyter是看不起我Windows?,既然它不支持,那還得自己來支持。
Google了一會,沒找到怎么讓它當個服務的方法,倒是看到個偏方,那就是用任務計劃程序:(網址見這里 Directions For Running Jupyter In The Background On Windows)。不過我不喜歡這種方式,明明人家微軟給準備了個服務功能專門干這事,用任務計劃干嘛。
-
......一小時后
在研究了一番Jupyter的源碼之后,寫出了用代碼啟動和停止它的方法,再配合Pywin32,成功地把它搞成了一個服務!好的不瞎扯了,首先你需要安裝Pywin32(這個Anaconda也沒帶):
pip install pywin32 python Scripts/pywin32_postinstall.py -install
同樣是兩條命令搞定,想當年Pywin32還得下安裝包,現在它也終于敵不過歷史的進程,從過氣的Sourceforge搬到了Github,從安裝包安裝變成了pip安裝。
萬事具備,有請啟動腳本登場!!!
import inspect import logging import os import win32serviceutil from notebook.notebookapp import NotebookApp, JupyterApp # 作為服務運行時的工作目錄是system32,這里改為文件所在目錄 current_file = os.path.abspath(inspect.getfile(inspect.currentframe())) os.chdir(os.path.dirname(current_file)) class NotebookService(win32serviceutil.ServiceFramework): _svc_name_ = "JupyterNotebook" _svc_display_name_ = "Jupyter Notebook Service" _svc_description_ = "Jupyter的服務啦" def __init__(self, args): super().__init__(args) self.app = NotebookApp() def _init_notebook(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 = "config" # 設置配置文件目錄 self._init_notebook() logging.getLogger("NotebookApp").addHandler(logging.FileHandler("notebook.log")) self.app.start() def SvcStop(self): self.app.stop() def SvcShutdown(self): self.SvcStop() if __name__ == "__main__": win32serviceutil.HandleCommandLine(NotebookService)
OK!是不是很簡單?帶注釋50行不到,你可以直接新建一個py文件,比如叫winservice.py,然后把它粘貼進去保存,再以管理員權限運行python winservice.py install --startup=auto,之后打開服務就能看到它已經進去了(默認服務名 Jupyter Notebook Service)。
其他注意事項如果在服務器上運行,并由公網訪問,那是需要配置一下的,比如設密碼啊、改端口啊,具體可以直接百度或谷歌一大堆教程,這里就不說了。
修改了配置文件后就有個小問題,那就是默認安裝的服務是以系統賬戶運行的,你要是在用戶目錄保存了Jupyter的配置文件,它是找不到的。一種解決方法是在服務面板里修改登錄身份為你的賬戶,或者在安裝服務時加上參數python winservice.py install --startup=auto --username=xxx --password=xxx。
還有一種方法就是自定義配置文件位置,看到代碼里那個_設置配置文件目錄_ 的注釋了沒,把前面的字符串改成配置文件所在的目錄,比如_C:UsersAdministor.jupyter_,或者把配置文件復制到指定的目錄里即可。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41577.html
摘要:一般都是作為后臺服務運行,以便隨時使用,如果你在自己的家用機上運行,它要占一個任務欄格子,而且還要一直打開一個難看的黑框框命令行界面,有時候一不小心就點到它。 原文發表于我的博客 https://blog.kaciras.net/article/38 隨著AI的大潮,Python大火大熱,學了Py,那就是學了寫人工智能的語言,而人工智能著名競賽Kaggle欽定的在線筆記本:Jupyte...
摘要:知道太多會消化不良的如圖所示,單擊,神奇的事情發生了,我們會自動在默認的瀏覽器打開一個新的界面,長這個樣子,我們發現網址為,不用知道為什么,我們不用知道關心這些沒用的信息。 下載并安裝Anaconda 好啦,作為小白,我們的第一步是安裝能夠運行Python的環境,所謂環境就是指我們要安裝一個軟件,之后就能用它來寫Python代碼 (覺得我對環境解釋特別智障的請繞行,我們是小白!!!) ...
摘要:連接遠程環境作為一個小巧的,使用方便的編輯器,受到許多初學者的喜愛考慮到本地配置的限制,往往想要調用遠程服務器中的,下文記錄下查閱網上資料嘗試的步驟遠程服務器中安裝本文使用的遠程服務器是,系首先,你的服務器中需要安裝,,此處不贅述由 連接遠程jupyter notebook ----windows環境 jupyter notebook作為一個小巧的,使用方便的python編輯器,受到許...
摘要:本文作者詳細描述了自己組裝深度學習服務器的過程,從主板電源機箱等的選取到部件的安裝,再到服務器的設置,可謂面面俱到。注本文旨在討論服務器設置及多用戶協作,部件組裝和軟件安裝過程是關于創建自己的的文章的簡化版本。本文作者詳細描述了自己組裝深度學習服務器的過程,從 CPU、GPU、主板、電源、機箱等的選取到部件的安裝,再到服務器的設置,可謂面面俱到。作者指出,組裝者首先要弄清自己的需求,然后根據...
閱讀 2789·2021-11-24 09:39
閱讀 2548·2021-11-23 09:51
閱讀 1802·2021-11-17 09:33
閱讀 1737·2021-10-22 09:54
閱讀 1870·2021-08-16 11:00
閱讀 3420·2019-08-30 15:53
閱讀 1733·2019-08-30 13:19
閱讀 2902·2019-08-30 12:49