搭建基于 Anaconda 管理的多用户 JupyterHub 平台


情况:计算工作站放在实验室,多个同学需要接入使用,且需要各自独立的环境,并使用 Jupyter notebook 平台以方便协作。


步骤

1. 安装 Anaconda

由于是多人环境,应调用 root 权限在安装过程中指定安装到 /opt/anaconda/ 路径下,这样所有用户均可读,但无法直接在 base 环境下安装模块。

为了让每个用户都能访问到 conda,需要逐个在用户的 .bashrc 文件中加入 export PATH='/opt/anaconda:$PATH'

2. 安装 JupyterHub

JupyterHub 是 Jupyter notebook 的多用户版本,每个用户可以通过自己的系统用户名和密码登录到个人独立的 Jupyter notebook 中,这样不同人的代码和数据都保存于其自己的用户目录下,同时用户的资源消耗和管理也更清晰简单,非常适合单机多用户的需求。

在 Anaconda 的 base 环境下安装 JupyterHub,注意 base 环境只有 root 可写。

(base)$ sudo conda install JupyterHub

在 base 环境下启用 JupyterHub 时亦需要通过 root,否则将会启用单用户模式,导致其他用户无法登陆。

(base)$ sudo jupyterhub

3. 安装 JupyterHub 调用 Anaconda 环境依赖

通过 conda create 创建的环境并不会默认显示在 JupyterHub 的 kernel 选项中,需要安装依赖。

(base)$ sudo conda install nb_conda_kernels

4. 用户使用

  1. 每个用户开始使用时,需要先建立自己的个人环境,注意由于是建立个人环境,因此该环境会写入 ~/.conda下,故不再需要 root 权限,且每个用户都可以随意安装需要的 python 模块
$ conda create --name crew

2. 建立好后,进入个人环境并安装 JupyterHub kernel

(base)$ source activate crew # 激活个人环境,注意下一行环境标识符发生变化
(crew)$ conda install ipykernel

3. 安装所需的模块,这样模块会被安装到用户的个人环境下,不会对 base 环境或其他用户的环境造成影响,且一个用户可以创建多个相互独立的环境

(crew)$ pip install numpy # or use conda install numpy

4. 访问 JupyterHub,此时可以在页面中选择所创建的个人环境的 kernel


实际尝试

  • 由于可能每个同学都需要使用 tensorflow 或 keras 等深度学习模块,因此我在 base 环境中预先安装好了这些模块,这样在进行深度学习时不需要费劲地重新安装模块。
  • 如果同学需要安装自己的模块,则可以直接从 base 环境新建一个个人环境,个人环境会继承 base 环境已有的模块
$ conda create -n crew
  • 如果同学不需要继承 base 环境,而是想新建一个空白的新环境,也可以用 conda 做到
$ conda create -n crew python=3.6

搭建基于 Anaconda 管理的多用户 JupyterHub 平台的更多相关文章

  1. 搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台

    搭建基于python +opencv+Beautifulsoup+Neurolab机器学习平台 By 子敬叔叔 最近在学习麦好的<机器学习实践指南案例应用解析第二版>,在安装学习环境的时候 ...

  2. 搭建基于 STM32 和 rt-thread 的开发平台

    我们需要平台 如果说,SharePoint 的价值之一在于提供了几乎开箱即用的 innovation 环境,那么,智能设备的开发平台也一样.不必每次都从头开始,所以需要固定的工作室和开发平台作为创新的 ...

  3. 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台

    面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...

  4. 搭建基于SornaQube的自动化安全代码检测平台

    一.背景和目的 近年来,随着新业务.新技术的快速发展,应用软件安全缺陷层出不穷.虽然一般情况下,开发者基本都会有单元测试.每日构建.功能测试等环节来保证应用的可用性.但在安全缺陷方面,缺乏安全意识.技 ...

  5. 手工搭建基于ABP的框架 - 工作单元以及事务管理

    一个业务功能往往不只由一次数据库请求(或者服务调用)实现.为了功能的完整性,我们希望如果该功能执行一半时出错,则撤销前面已执行的改动.在数据库层面上,事务管理实现了这种完整性需求.在ABP中,一个完整 ...

  6. 如何用Baas快速在腾讯云上开发小程序-系列2:搭建Phabricator开发管理平台

    版权声明:本文由贺嘉 原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/905333001487424158 来源:腾云阁 h ...

  7. 搭建基于MinGW平台的《OpenGL蓝皮书(OpenGL SuperBibe 5th)》示例代码编译环境

    副标题:搭建基于MinGW平台的<OpenGL超级宝典>(OpenGL蓝皮书第5版)GLTools 编译环境.示例代码:Triangle.cpp @ SB5.zip 以下内容以及方法均参考 ...

  8. 基于Prometheus和Grafana的监控平台 - 环境搭建

    相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics. Logging - 用于记录离散的事件.例如,应用程序的调试信息或错误信息.它是我们诊断问题的依据. ...

  9. centos7搭建ELK Cluster集群日志分析平台(一):Elasticsearch

    应用场景: ELK实际上是三个工具的集合,ElasticSearch + Logstash + Kibana,这三个工具组合形成了一套实用.易用的监控架构, 很多公司利用它来搭建可视化的海量日志分析平 ...

随机推荐

  1. MobX入门示例

    在相当长的一段时间内,Redux 都是前端开发人员作为状态管理的首先框架,如果不会 Redux,你都不好意思跟别人说自己是搞前端的. 没过多久,开发者们开始意识到,这东西虽说盛行,但它并没有传说中的那 ...

  2. PHP的SPL标准库

    1,简介 SPL,全称 Standard PHP Library 中文是 标准PHP类库.是php内置的一些拓展类和拓展接口,其内容包含数据结构.迭代器.接口.异常.SPL函数,文件处理等内容.SPL ...

  3. k8s 挂载卷介绍(四)

    kubernetes关于pod挂载卷的知识 首先要知道卷是pod资源的属性,pv,pvc是单独的资源.pod 资源的volumes属性有多种type,其中就包含有挂载pvc的类型.这也帮我理清了之间的 ...

  4. 【转】STM32利用FATFS读写数组

    因为存为TXT可以实现,但是读取TXT里边的数据总是不尽如人意,所以,最终存为bin文件了. 先摘几个观点: http://www.openedv.com/posts/list/36712.htm “ ...

  5. Odoo CRM模块

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10825983.html  一:理解CRM CRM:客户关系管理,是指企业用CRM技术来管理与客户之间的关系. ...

  6. Mac原型动画设计软件Drama创建3D图层的注意事项,你知道吗?

    Drama创建3D图层的注意事项:要跨层保留3D空间,可以使用组.它们具有保留子图层和嵌套组的3D空间的特殊功能. Drama支持通过在三维空间中定位和旋转2D图层来创建3D内容.要在3D空间中定位图 ...

  7. 通过腾讯邮件服务器发送HTML邮件

    邮件发送工具: private static String host = "smtp.exmail.qq.com";// 服务器地址 private static String p ...

  8. NumPy简单入门教程

    # NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体 ...

  9. Unity 渲染教程余下

    可能来源于(英文):https://catlikecoding.com/unity/tutorials/ Unity渲染教程(一):矩阵           http://gad.qq.com/pro ...

  10. geany写C语言,printf打印中文时显示乱码

    原因 geany设置了编码格式为utf8 运行时显示出的cmd窗口编码格式为GBK 解决方法 要么修改geany编码,要么修改cmd窗口编码. 修改geany编辑器为GBK编码格式 编辑=>首选 ...