非root用户下python环境添加到root环境下的jupyter notebook kernel中(Centos 7 )
问题需求:
共享服务器时,常出现不同需求需要按照不同版本的python,即使使用相同的py版本,但是项目需求不同,导致常需要安装或者更换不同版本的扩展包,服务器共享常用的办法:一个管理员具有root权限,其他使用者都非root权限,这样每个非root用户需要更新数据包时,需要root用户协助管理,尤其是python的使用,扩展包过多,版本需求参差不齐,很难维护。那么用什么方法可以每个非root用户创建py环境而不影响他人。如果每个人一个jupyter账号,资源又浪费。那么如何实现共享一个jupyter账号,同时,相互之间可以配置自己的py环境,同时其他用户(仅仅)可以使用自己的python kernel呢
这里只讲述如何将自己环境链接到jupyter kernel上
1如何配置自己的tensorflow环境(anaconda)
我之前写的一个篇文章GUP配置tensorflow环境,主要功能就是如何配置自己的TensorFlow环境,这里不再赘述,请自行查阅。
2 自己环境在jupyter notebook链接到kernel上
前提:需要一次root权限
2.1.root 环境
- 创建kernel
python -m ipykernel install --name kernel_name(kernel_name在jupyter notebook中显示名称,可任意,这里设置为py36)
- 查询当前存在的kernel,创建的是否存在,即其位置
jupyter-kernelspec list
显示:
Available kernels: py36 /usr/local/share/jupyter/kernels/py36
- 切换到此kernel目录下:
cd /usr/local/share/jupyter/kernels/py36
- 修改此目录下的
kernel.json
:(此时需要查询非root下的环境位置,跳至2.2)
vi kernel.json
{ "display_name": "ys36", "language": "python", "argv": [ "/usr/local/anaconda2/bin/python",#修改此行美容即可 "-m", "ipykernel_launcher", "-f", "{connection_file}" ] } ~ ~ ~ ~ ~ ~ ~ "kernel.json" [noeol] 11L, 174C
2.2 非root用户下操作:
前提是:已经按照1中的操作创建好自己的环境
- 查询环境是否创建:
conda info -e
- 选择自己需要链接到kernel的环境路径
# conda environments: # jx36 * /home/jiaoxue/.conda/envs/jx36
运行此路径下bin/python是否可用(可以不用)
/home/jiaoxue/.conda/envs/jx36/bin/python
可用,则将3中的文件路径替换2.1中第4步中/usr/local/anaconda2/bin/python 保存退出即可
在web端打开jupyter notebook 查看是否存在py36(自己命名的kernel),切换到此kernel,运行程序即可。
到此结束
1)删除kernel
sudo jupyter kernelspec uninstall lernel_name
#或者
sudo jupyter-kernelspec uninstall yourKernel
如需转载,请务必标明出处及作者信息:@洋石灰儿@https://blog.csdn.net/Yshihui/article/details/80539728