美文网首页
jupyter notebook在windows下作为服务运行

jupyter notebook在windows下作为服务运行

作者: 刘刘刘月月啊 | 来源:发表于2018-10-06 14:17 被阅读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

    相关文章

      网友评论

          本文标题:jupyter notebook在windows下作为服务运行

          本文链接:https://www.haomeiwen.com/subject/zflhaftx.html