jupyter notebook在windows下作为服务运行

2018-10-06  本文已影响0人  刘刘刘月月啊

~~互联网上大多数的教程,只是告诉如何安装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

上一篇下一篇

猜你喜欢

热点阅读