我正在开发一个Jupyter笔记本电脑我的团队用来分类和分析一些专有数据。我已准备好与团队分享它,以便继续执行和开发。该团队通常拥有Windows 10工作站,并且是熟练的工程师,但不是数据科学家。目前没有人使用Jupyter。如何共享Jupyter安装团队笔记本发展
我现在意识到我可能已经彻底误判Jupyter能够支持这种工作环境的能力。
选项1:单机安装
这是最坏的情况。任何想要运行或修改笔记本的人都需要安装Jupyter。蟒蛇可能是最好的方式,但它是一个大的,丑陋的,可怕的安装。更糟的是,每个用户都必须安装和管理额外的库。任何需要更改内核的笔记本更改都必须手动应用到每个安装。
当然,作为客户端 - 服务器,这不是Jupyter的意图。
选项2:一台服务器,许多客户
最明显的办法是举办一个网络访问计算机上的Jupyter服务器,并让所有用户连接到它与浏览器。这样,只有一个共享安装需要管理,每个用户只需要一个URL即可访问它。
但是,有一个疑难杂症 - 服务器期望笔记本电脑将自己的文件系统上!所以每个用户都将访问相同的笔记本文件。这使版本控制非常成问题 - 没有人可以检查自己的笔记本副本以进行独立的编辑和提交会话。相反,更改将覆盖唯一的副本,并且必须在服务器上完成提交/还原/比较(或通过挂载服务器的文件系统)。
选项3:服务器在码头工人的形象,每一个用户运行一个容器
泊坞窗相救?这样我们可以构建/维护一个服务器映像(甚至是版本控制它),每个用户只需要安装一个Docker引擎来实例化映像(这是一个友好的8GB下载!!)。他们连接到他们自己的容器,这些容器有点脚本诡计,会指向他们自己的笔记本副本。
此选项只花了20小时发现,它从根本上吮吸之前进行调查。使用内核很棘手,需要大量新技能。但更多的展示 - 没有任何显示Qt窗口的工作。 qtconsole是我们无法做到的,但我们笔记本的一部分显示了一个文件打开对话框,最好的方式就是使用Qt Widget。当Docker容器中的服务器期望X Windows环境,并且客户端在Windows浏览器中时,Widget无法显示。
Qt的问题是在过去的很多很多问题,试图让泊坞窗选项运行。从matplotlib到路径映射的所有内容,从os
库调用到ipywidgets需要调查,调整,谷歌搜索,切碎,并改变工作。我相信这些戏剧将会持续。
结论
有很多围绕Jupyter version control讨论。 read-only sharing有很多选项。甚至还有一个project用于运行时构建Docker容器以提供对笔记本的可执行访问。但是在团队环境中使用Jupyter的建议并不多。
由于服务器并非与客户机本机运行在同一台机器上,导致无尽的复杂性,我开始相信选项1是唯一可行的方法。在我带着蹩脚的消息去看同事之前,还有其他的建议吗?
如果您可以使用商用托管产品,请查看datascience.ibm.com。我们必须实施很多定制才能使Jupyter笔记本在团队环境中运行良好。我不认为你会找到一个简单的方法来推出你自己的解决方案。 –
在我们的情况下,我们对此并不满意,但很好意识到这一点。很高兴知道这不是我应该期望开箱即用的东西。 –