Centos 7 MiniConda Jupyter Lab
想用Jupyter lab的find and replace功能
升级jupyter lab却一直出现页面混乱
一怒之下回滚进度到conda安装前
直接重新安装MiniConda
且做好虚拟环境的配置
MiniConda的安装配置
清华镜像源下载MiniConda
https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/
sh <package.sh> 安装
安装后切记执行下述命令让配置生效
1 |
source /root/.bashrc |
添加Anaconda仓库镜像源
国内采用清华tuna镜像源速度会快不少,以下内容在Terminal内进行
1 2 3 |
[root@your_server_name ~]# conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ [root@your_server_name ~]# conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ [root@your_server_name ~]# conda config --set show_channel_urls yes |
删除默认源
1 |
conda config --remove-key channels |
创建新的python环境
环境管理是Conda的一大亮点,可以很好的兼容不同的python版本
在虚拟环境中安装包也可以方便的实现不同包的管理
在terminal中用下述命令创建新的环境
1 2 3 4 5 6 7 8 9 |
# 创建环境 conda create -n your_env_name python=3.7 # 检查环境 conda env list # 激活环境 source activate your_env_name conda activate your_env_name |
笔者测试时因为已经在/root文件夹下了,显示permission error
所以创建环境时要先转到/root以外的路径下
jupyter lab 安装并配置
1 2 |
# 安装jupyter lab pip install jupyterlab |
在Terminal中运行python 并生成密钥用于jupyter lab的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# 运行python编译器 ipython # 编译器内输入 from notebook.auth import passwd passwd() # 根据指示输入密码并确认 # 复制生成的 'sha1: *' 密钥 # 生成jupyter lab 配置文件 jupyter lab --generate-config # 打开上述命令返回的路径编辑文件 vim /root/.jupyter/jupyter_notebook_config.py |
进入vim界面后的去掉几个关键命令的注释并修改
1 2 3 4 5 |
# 键入下述命令查找对应的语句 :/c.NotebookApp.ip # 按“i”进入insert修改模式 # 去掉注释 |
参考上述操作,具体配置如下
1 2 3 4 5 6 7 8 9 10 |
有人都可以访问 c.NotebookApp.ip = '*' # 这里的密码填写上面生成的密钥 c.NotebookApp.password = '密钥' # 禁止用host的浏览器打开jupyter c.NotebookApp.open_browser = False # 打开jupyter lab的端口 c.NotebookApp.port = 88** # 允许远程访问 c.NotebookApp.allow_remote_access = True |
jupyter lab创建载入虚拟环境
准备工作
1 2 |
# 检查更新conda conda update conda |
创建虚拟环境
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 检查现有虚拟环境 conda env list # 或 conda info -e # 创建虚拟环境 conda create -n your_env_name python=x.x # 安装包 conda install -n your_env_name [package] # 卸载包 conda uninstall [package] # 或 conda remove [package] # 搜索包 conda search [package] # 切换回base环境 source deactivate # 删除虚拟环境 conda remove -n your_ev_name --all |
虚拟环境内的准备工作
1 2 3 4 5 6 7 8 9 10 |
# 切换到要载入的虚拟环境下 conda activate your_env_name # 安装 ipykernel conda install ipykernel # 也可用pip安装 -但尽量用conda,比较保险 pip install ipykernel # 载入环境,display name不是必须的,仅为了自己好辨认 ipython kernel install --user --name your_env_name --display name "user_define_name" |
新环境没有<Tab>代码提示
原理:Jupyter lab的基础是jupyter notebook,因此需要在新环境中安装notebook的相关插件 ‘nb_conda’ , 才能兼容 ipython 和 ipykernel,实现<Tab>提示代码
1 2 3 4 5 |
# 先进入新建的虚拟环境中 conda activate your_env_name # 安装 conda install nb_conda |
删除环境
1 2 3 4 5 6 7 8 |
# 列出所有已经载入虚拟环境 jupyter kernelspec list # 卸载指定环境 jupyter kernelspec remove your_env_name # 删除虚拟环境 conda remove -n your_env_name --all |
环境重命名
1 2 3 4 5 6 7 |
# 简化命令形式 conda create -n conda-new --clone conda-old # 完整的命令形式 conda create --name conda-new --clone conda-old # 删除原环境 conda remove -n conda-old --all |
自动载入conda环境
对于conda 创建的环境
参考nb_conda_kernels官方github页面:链接
首先在jupyter lab所在的环境下安装 nb_conda_kernels包
1 |
conda install -n notebook_env nb_conda_kernels |
此后用conda 创建的新环境中只要安装了ipykernel就可以自动检测载入
1 2 |
conda install -n python_env ipykernel # python 环境 conda install -n r_env r-irkernel # R环境 |
启动jupyter lab
1 2 3 4 5 6 7 |
# 调试模式启动 jupyter lab # 可以先进入一个路径下再用该命令 # 令生成文件保存在所进入的目录中 # 后台启动 nohup jupyter lab > jptlb.log 2>&1 & |
nohup (no hang up)当账户退出或终端关闭时,程序仍然运行。
&:指如果客户端关闭,程序就会停止运行。
>log/lts.txt:指程序运行生成日志文件的存储位置,如果不指定,默认该项目所有输出被重定向到nohup.out的文件中。
dev/null 表示空设备文件
0 表示stdin标准输入
1 表示stdout标准输出
2 表示stderr标准错误 2>&1 就是表示将错误重定向输出到标准输出上
如果想用jupyter notebook,可用jupyter notebook启动,配置一样的
Add existing environment to new conda installation
Currently the most efficient way with minimal copying is add path to config by
1 |
conda config --append envs_dirs Z:/conda/envs_dirs |
The envs_dirs
is a parent directory, multiple environment can be added under it, for example, using
1 |
conda create -p Z:/conda/envs_dirs/env |
This method, however, would not allow conda activate by display name.
If the bash prefix Z:/conda/envs_dirs/env
is too long, one can do {ref}
1 |
conda config --set env_prompt '({name}) ' |
Note this shoudl be done before creating the env at under the dir. My temp solution is to add a scripts for quick env start:conda activate D:/YOUR_ENV_DIR
后记——远程访问
为了远程访问,还需要实现frp内网穿透。可以参考
吼吼, 已经用v2ray反向代理了。FRP是端口转发,一下就被探测为异常流量了。