jupyter notebook在windows下作为服务运行
~~互联网上大多数的教程,只是告诉如何安装jupyter notebook,如何启动,如何远程访问
本教程默认安装的anaconda,默认windows
jupyter notebook安装完成以后,在命令下输入jupyter notebook 就可以启动了,同时开启了浏览器,这个时候的默认端口是8888,如果需要调整端口启动,需要加上参数 --port ,此时还是只能本地访问
如何启用用远程访问?
远程访问需要修改配置文件,需要在命令下输入
jupyter notebook --generate-config
这样就在相应目录下生成一个配置文件(位置就不写出了,命令下会提示生成配置文件的位置)
打开这个文件,修改其中的三项即可(记得把前面的注释符号#去掉)
c.NotebookApp.ip='*' 这个改为*号,表示匹配任何ip
c.NotebookApp.password = ' ' 这个地方请继续往下看
在命令行下输入打开 ipython ,进入环境,然后输入
from notebook.auth import passwd ; passwd()
接下来会提示你输入密码,和验证你输入的密码,完成以后会生成一串sha1值,把这个值填入c.NotebookApp.password = ' '的地方.
这时候,你就可以在远程访问到了,然后输入你的密码,进行编辑
BUT BUT BUT ! ! !
只要关闭命令行,服务就停止了,这很烦.如果能把这些做成服务就好了,刚好Pywin32貌似可以实现
进入你python的脚本目录,找到Pywin32,命令行进入此目录,输入python pywin32_postinstall.py -install
这时候就把pywin32的扩展全部安装了
然后建立下面的py脚本文件......
import inspect
import logging
import os
import win32serviceutil
from notebook.notebookapp import NotebookApp, JupyterApp
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`s service"
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 = " "
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)
建立上面的py脚本,注意这一行代码
self.app.config_dir = "" 这里面的内容填写你的配置文件的路径
路径 路径 路径 不要搞错了
也就是下面这条命令的生成的配置文件的路径,记住是路径
jupyter notebook --generate-config
最后在你的脚本目录下进入命令行,输入一下
python winservice.py install
这个时候你就可以在服务里面找到Jupyter Notebook Service服务了,启动服务,然后把类型改为自动
ok