1. python环境搭建
通过之前几篇的文章,我们已经入门了docker及ubuntu的基本使用。
下面我们终于要切入正题,准备开始搭建用于数据挖掘的python环境。整个环境搭建包括基础的python安装、常用python包安装和jupyter配置三部分。
整体环境配置还是依赖前文提到的docker,通过docker可以保证不同机器环境版本的一致性,同时也方便后期整体环境的更新运维。
1.1. 环境配置
如果你已经安装好docker,直接按照下面步骤一步步即可搭建出一个实用和高效的python数据挖掘开发环境。
1.1.1. 启动目前最新的ubuntu20容器
通过docker hub搜索20版本的ubutnu系统 https://hub.docker.com/_/ubuntu?tab=tags&page=1&name=20.
拉取镜像最新镜像
docker pull ubuntu:20.04
启动镜像
docker run -it --name ubuntu-python -p 8888:8888 -v /Users/enmanabuisamu/Desktop:/shared_data ubuntu:20.04 env LANG=C.UTF-8 /bin/bash
可以看到我们已经进入ubuntu20.04系统,其中:
容器名称为ubuntu-python
内外部端口8888做了映射,方便后面jupyter访问
把外部文件夹/Users/enmanabuisamu/Desktop/data_mining映射到容器内/shared_data
设置了中文环境可以正常访问文件夹
1.1.2. 安装常用软件
更新apt源
apt-get update
安装ubuntu的常用依赖&软件(包括python3.8)
apt -y install vim python3-pip screen wget
vim是文本编辑器
python3-pip会安装python包管理工具pip,如果系统没有python的话会安装最新版python3
screen是linux程序后台管理工具
wget是linux下的下载工具
1.1.3. 安装cmake
为了后续xgboost支持多线程,需要安装cmake
wget https://cmake.org/files/v3.16/cmake-3.16.7-Linux-x86_64.tar.gztar zxvf cmake-3.16.7-Linux-x86_64.tar.gzmv cmake-3.16.7-Linux-x86_64 /opt/cmake-3.16.7ln -sf /opt/cmake-3.16.7/bin/* /usr/bin/cmake --version
出现下列信息说明cmake环境已经配置好
1.1.4. 安装python包
安装常用python包
pip3 install pandas sklearn catboost lightgbm bs4 requests pylint pyecharts django==2.2 xlrd xgboost jieba lxmlpip3 install jupyter notebookpip3 install jupyter_contrib_nbextensionspip3 install jupyterthemes pip3 install jupytext
1.1.5. 设置jupyter nbextension
配置jupyter的nbextension插件,这个插件超级牛x好用。。。。。务必要安装配置!!!!
jupyter contrib nbextension install --userjupyter nbextension enable codefolding/main
1.1.6. 设置jupyter颜色(可选)
如果不喜欢白底黑字的界面可以更换主题颜色,可用主题:
chesterish
grade3
gruvboxd
gruvboxl
monokai
oceans16
onedork
solarizedd
solarizedl
更换主题代码:
jt -t oceans16 -T -N
后面的参数:
-t 主题
-f(字体)
-fs(字体大小)
-cellw(占屏比或宽度)
-ofs(输出段的字号)
-T(显示工具栏)
-T(显示自己主机名)
1.1.7. 设置终端颜色(可选)
配置docker中的命令行颜色,先编辑bashrc文件
vim ~/.bashrc
添加设置
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;35;01m\]\u\[\033[00;00;01m\]@\[\033[01;35;01m\]\h\[\033[00;31;01m\]:\[\033[00;00;01m\]\w \[\033[01;32;01m\]\$ \[\033[01;01;01m\]'
1.1.8. 设置jupyter远程访问
初始化jupyter notebook配置文件
jupyter notebook --generate-config
会显示jupyter notebook配置文件的路径,请务必记录
配置jupyter notebook远程访问密码,先启动python:python3
运行以下代码,按照提示输入你想设置的密码,并记住加密后的密码
from notebook.auth import passwdpasswd()
最后退出python
exit()
根据上面配置文件路径,配置jupyter配置文件(关于vim操作可以查看之前文章)
vim /root/.jupyter/jupyter_notebook_config.py
分别查找下面的配置,并按照自己的需求进行配置
c.NotebookApp.ip='*'c.NotebookApp.password = '刚刚记下的密码'c.NotebookApp.open_browser = Falsec.NotebookApp.port =8888c.NotebookApp.notebook_dir = '/shared_data'
保存并退出后,我们就完成了主要的python及ide工具的准备工作。
1.2. jupyter启动&插件配置
windows & MacOS的交互式界面,可以很方便的进行多任务管理和切换,Ubuntu中的多任务我比较习惯用screen进行管理。
1.2.1. screen简介
screen的功能就像他的名字,可以建立一个单独的窗口运行你想持续运行的服务,再把这个窗口最小化后台运行。同时,screen还可以再次进入这个窗口进行操作,或者进行其他管理。
screen常用操作:
screen -S screenname #screenname改成你窗口的名字screen -ls #列出所有的窗口kill xxx #xxx是screen -ls中显示的screen idscreen -r screenname #再次进入窗口
control
+a
+d
退出当前窗口
1.2.2. jupyter启动
启动screen窗口
screen -S jupyter
使用screen设置jupyter后台启动
jupyter notebook --allow-root
退出当前窗口 control
+a
+d
退出当前窗口
访问jupyter服务 http://localhost:8888/
输入刚刚配置的密码,终于我们进入了费劲吧啦配置好的jupyter环境
1.2.3. jupyter插件设置
刚刚在安装过程中,我们已经安装过nbextension这个插件。可以毫不夸张的说,安装并且配置好插件的jupyter才是一个乱拳打死老师傅的完全体。
nbextension其实是很多插件的合集,这里是我常用的插件,供大家参考
通过上面的配置,我们未来的jupyter文件可以具备如下功能:
按照markdown的标题层级自动添加标题的编号
根据标题自动生成目录和目录导航
计算单元格计算时间
查看变量情况
………… 可以说对未来数据挖掘工作可以提高超强的生产力
1.3. 保存镜像
首先按control
+d
退出容器
查看容器情况
保存镜像
docker commit -a "yxy" -m "jupyter notebook" ed48fd23b265 jupyter:v1
1.4. 后期使用和运维
1.4.1. 启动容器
启动并进入docker容器
docker run -it --name jupyter -p 8888:8888 -v /Users/enmanabuisamu/Desktop:/shared_data jupyter:v1 env LANG=C.UTF-8 /bin/bash
其中/Users/enmanabuisamu/Desktop改成自己的本地目录
启动一个新的窗口
screen -S jupyter
启动jupyter
jupyter notebook --allow-root
按control
+a
+d
退出screen 按control
+d
退出容器