关注“哪儿趣”,不定时更新,选择“星标”或“置顶”,
第一时间获取原创质量文章。
本文大约9000字,预计阅读时间22分钟。
本文链接
- Github:https://github.com/kangzhiheng/GitLocalDoc
- 个人网站:https://kangzhiheng.top/post/10-服务器环境搭建、配置及使用
系列文章导读:本系列文章 《深度学习环境搭建、配置及使用》 主要介绍了自己使用服务器进行管理和科研的一点心得,即:如何搭建和配置深度学习环境,普通用户可以自由切换多版本CUDA、cuDNN版本,自由组合创建不同版本的Tensorflow、PyTorch等深度学习环境。
本文摘要:本文是系列文章《深度学习环境搭建、配置及使用》的第二部分的下半部分,主要介绍了Tensorflow、PyTorch等深度学习框架所必备的Anaconda、Pip、Opencv、多版本GCC环境的在CentOS 7.7中的配置(其它发行版以此类比),包括下载、安装、卸载、查看等操作。每一个链接都很准确,每一个步骤都很明确。
关键词:Anaconda;pip;Opencv;GCC;
本部分所有指令,建议在bash
环境下运行,使用zsh
的shell请切换为bash
,避免不必要的麻烦。
注意:标题右上角带有"*"标记的,意为这一部分内容需要管理员操作。
Anaconda3安装
安装Anaconda3
在官方repo (https://repo.anaconda.com/archive/) 下载Anaconda安装包(.sh
后缀名),如果下载速度过慢,访问国内镜像源
(https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/)
下载,右键复制对应Anaconda包的链接,使用wget
指令下载,下载时注意该Anaconda包是基于Python 3.6还是Python 3.7的,推荐Python 3.6,下载Anaconda3-5.2.0-Linux-x86_64.sh文件
cd ~wget -c https://repo.anaconda.com/archive/Anaconda3-5.2.0-Linux-x86_64.sh
Anaconda3-5.2.0-Linux-x86_64.sh这是 python3.6 版本的Anaconda安装包,继续运行
bash Anaconda3-5.2.0-Linux-x86_64.sh
按Enter
键继续,出现Anaconda版本的一些说明,此时按一下space
(空格)键,有如下提示,在[no] >>>
后面输入yes
,如下所示:
Do you accept the license terms? [yes|no][no] >>> yes
紧接着有提示
Anaconda3 will now be installed into this location:/home/test/anaconda3 - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below[/home/test/anaconda3] >>>
按下Enter
键即可开始安装,安装完成后,提示如下
installation finished.Do you wish the installer to prepend the Anaconda3 install locationto PATH in your /home/test/.bashrc ? [yes|no][no] >>> yes
在[no] >>>
后面输入yes
后出现Anaconda安装成功的消息,此时出现是否安装Microsoft VSCode的消息,输入no
即可。
python3.6版本的Anaconda安装完成,此时在终端输入conda
,会提示conda:未找到命令
,不要慌,反手输入
source ~/.bashrc
命令刷新环境,再输入conda即有消息提示,表明conda安装成功。
配置Anaconda国内开源镜像
显示有关当前conda安装的信息:
conda info
输出
active environment : None user config file : /home/adoredee/.condarc populated config files : conda version : 4.8.3 conda-build version : not installed python version : 3.7.0.final.0 virtual packages : __glibc=2.17 base environment : /home/adoredee/anaconda3 (writable) channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarchhttps://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /home/adoredee/anaconda3/pkgs/home/adoredee/.conda/pkgs envs directories : /home/adoredee/anaconda3/envs /home/adoredee/.conda/envs platform : linux-64 user-agent : conda/4.8.3 requests/2.23.0 CPython/3.7.0 Linux/3.10.0-957.el7.x86_64 centos/7.7.1908 glibc/2.17 UID:GID : 1000:1000 netrc file : None offline mode : False
可以看到在conda安装好之后,默认的镜像是官方的(channel URLs),由于官网的镜像在境外,国内访问较慢,配置国内的镜像能够加快访问的速度。
上海交通大学镜像源:https://mirrors.sjtug.sjtu.edu.cn/anaconda/
清华大学镜像源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/
创建配置文件:
nvim ~/.condarc
如果使用上海交通大学镜像源,将以下配置写入~/.condarc
:
channels: - defaultsshow_channel_urls: truechannel_alias: https://anaconda.mirrors.sjtug.sjtu.edu.cndefault_channels: - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/main - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/free - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/mro - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/r - https://anaconda.mirrors.sjtug.sjtu.edu.cn/pkgs/msys2custom_channels: conda-forge: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/ bioconda: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/ menpo: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/ soumith: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/ viscid-hub: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/ atztogo: https://anaconda.mirrors.sjtug.sjtu.edu.cn/cloud/
如果使用清华大学镜像源,将以下配置写入~/.bashrc
:
channels: - defaultsshow_channel_urls: truechannel_alias: https://mirrors.tuna.tsinghua.edu.cn/anacondadefault_channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2custom_channels: conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
清除索引缓存,保证用的是镜像站提供的索引:
conda clean -i
卸载Anaconda3
按照官方卸载指导,Anaconda3安装在~/anaconda3
文件夹下,首先删除目录
cd ~rm -rf anaconda3
清理.bashrc
里的Anaconda环境变量
nvim ~/.bashrcsource ~/.bashrc
清理隐藏文件夹
cd ~rm .condarcrm -rf ~/.condarc ~/.conda ~/.continuum
conda常用命令
关于环境
创建一个名为myenv的环境conda create -n myenv pip python=3.6
激活myenv环境
source activate myenv
退出环境
source deactivate myenv
删除一个已有的环境
conda deactivate myenv # for Windowssource deactivate myenv # for Linux & Mac
查看Anaconda环境
conda info
查看已安装的虚拟环境
conda info -e
或者
conda envs
删除虚拟环境
conda remove -n myenv --all
包管理
安装
对于Python的包,尽可能使用pip
安装
pip install packages
pip
安装不了的,使用conda
conda install packages # 安装最新版本conda install packsges==xxx # 安装指定版本
查看当前环境下已安装的包
python环境下的包
pip list
conda环境下的包
conda list
查看某一conda环境下的包,比如查看myenv环境下的安装的包:
conda list -n myenv
查找package信息
不同镜像源的包的信息不一样,尽量使用pkgs/main/channels的包
conda search packages
升级conda
conda update conda
卸载某一个环境下的包
在myenv虚拟环境下卸载某一packsges
conda remove -n myenv packages
pip安装
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。目前如果在 python.org[6] 下载最新版本的安装包,则是已经自带了该工具。 Python 2.7.9 + 或 Python 3.4+ 以上版本都自带 pip 工具。 pip 官网:https://pypi.org/project/pip/安装
在终端利用SSH登录到服务器系统(CentOS 7.6),由于普通用户无法使用sudo
,如果没有安装python,则需手动安装pip,在终端中运行
wget https://bootstrap.pypa.io/get-pip.pypython3 get-pip.py --user
注意:参数--user
一定要记得使用,否则会提示权限不足。
安装完成后会在家目录下生成 .local 文件夹,里面有bin文件夹和lib文件夹,加入环境变量
export PATH=~/.local/bin:$PATH
此时已在非root用户环境中安装好通用的Python包管理工具pip
。
如果系统安装了Python且Python 2.7.9 + 或 Python 3.4+ 以上版本,自带 pip 工具。
更换国内镜像源
为了加快下载速度,更换到国内的镜像源:
pip install pip -Upip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
常用命令
显示版本和路径
pip --version
获取帮助
pip --help
升级 pip
pip install -U pip
如果这个升级命令出现问题 ,可以使用以下命令:
sudo easy_install --upgrade pip
安装包
pip install SomePackage # 最新版本pip install SomePackage==1.0.4 # 指定版本pip install 'SomePackage>=1.0.4' # 最小版本
比如要安装 Django。用以下的一条命令就可以,方便快捷。
pip install Django==1.7
升级包
pip install --upgrade SomePackage
升级指定的包,通过使用==, >=, <=, >, < 来指定一个版本号。
卸载包
pip uninstall SomePackage
搜索包
pip search SomePackage
显示安装包信息
pip show
查看指定包的详细信息
pip show -f SomePackage
列出已安装的包
pip list
查看可升级的包
pip list -o
注意事项
如果 Python2 和 Python3 同时有 pip,则使用方法如下:
Python2:
python2 -m pip install XXX
Python3:
python3 -m pip install XXX
OpenCV安装
Opencv for Python
首先确保Linux系统安装了Python 3.x,推荐Anaconda[8],激活不同的虚拟环境后,配置基于Python 3.x的Opencv 4.2。
激活对应的虚拟环境,比如我使用了Anaconda创建了一个虚拟环境tensorflow-gpu
,激活:
source activate tensorflow-gpu
此时终端会变成如下模样
(tensorflow-gpu) username@devices:~$
即为正常。
上述命令解释
name | 意义 |
---|---|
username | 用户名 |
devices | 主机名 |
~ | 当前用户主目录 |
$ | 普通用户 |
(tensorflow-gpu) | 系统指定环境 |
然后使用pip
命令进行安装,查找opencv的不同版本(https://pypi.org/project/opencv-python/3.4.9.33/#history),使用下面的命令,替换版本号即可:
pip install opencv-python==3.4.9.33
验证,在虚拟环境中输入
python
输出
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34) [GCC 7.3.0] on linuxType "help", "copyright", "credits" or "license" for more information.>>>
接着输入
>>> import cv2>>> cv2.__version__'3.4.9'
结果显示Opencv3.4.9,安装正确。
GCC多版本切换*
在CentOS 7下,使用
sudo yum install gcc
CentOS官方的gcc或者g++版本最多到4.8.5,如果要安装Tensorflow 2.0以上的版本,就需要GCC 7.3.1,由于CentOS源没有提供高版本的GCC安装包,这时就不能通过安装包安装,通常的解决方案就是通过编译安装高版本的GCC。在这里介绍如何利用CentOS的新特性SCL进行高版本GCC的安装。
SCL软件集Software Collections)是为了给 RHEL/CentOS 用户提供一种以方便、安全地安装和使用应用程序和运行时环境的多个(而且可能是更新的)版本的方式,同时避免把系统搞乱。
devtoolset和GCC对应关系如下表:
devtoolset | GCC版本 |
---|---|
devtoolset-3 | 4.9.2 |
devtoolset-4 | 5.3.1 |
devtoolset-6 | 6.3.1 |
devtoolset-7 | 7.3.1 |
devtoolset-8 | 8.3.1 |
添加centos-release-scl包
sudo yum install centos-release-scl
启用RHSCL库
sudo yum-config-manager --enable rhel-server-rhscl-7-rpms
安装GCC
Devtoolset 默认安装到 /opt/rh
目录下
GCC 4.9.2
sudo yum install devtoolset-3
GCC 5.3.1
sudo yum install devtoolset-4
GCC 6.3.1
参考官方链接(https://www.softwarecollections.org/en/scls/rhscl/devtoolset-6/)
sudo yum install devtoolset-6
GCC 7.3.1
参考官方链接(https://www.softwarecollections.org/en/scls/rhscl/devtoolset-7/)
sudo yum install devtoolset-7
GCC 8.3.1
参考官方链接(https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/)
sudo yum install devtoolset-8
scl-utils 只是方便 Software Collections 使用,比如要查看当前安装了哪些Software Collections,可以使用命令
scl --list
临时生效
假设使GCC 7.3.1
生效,其对应devtoolset-7
,执行命令
scl enable devtoolset-7 bash
这种方法只对当前的shell环境有效,退出后GCC回退到系统指定的版本。
全局生效
执行下列命令可使对应的GCC全局有效:
ln -s /opt/rh/devtoolset-7/root/usr/bin/* /usr/local/bin/hash -r
测试 gcc 版本
gcc --version
总结
这一部分详细介绍了Anaconda、pip、Opencv、多版本GCC的详细配置,包括每一套软件的下载、安装及校验。本篇文章仅作为参考,如果遇到问题,还请仔细阅读错误信息,利用Google、Stack Overflow等工具一一排除。
本系列第三部分即将推出,届时详细介绍CUDA、cuDNN的切换(重点)、Tensorflow喝PyTorch的安装(详细)、NVim/Vim和Tmux的使用方法(实用)。
![1714860de485b8d2deb5f7b9a6be39ff.png](https://i-blog.csdnimg.cn/blog_migrate/1f35fb7de949d85b247ba7547ef32ccc.png)
[1] Anaconda官方repo: https://repo.anaconda.com/archive/
[2] Anaconda国内镜像源: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
[3] 上海交通大学镜像源: https://mirrors.sjtug.sjtu.edu.cn/#/
[4] 清华大学镜像源: https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
[5] Anaconda官方卸载指导: https://docs.anaconda.com/anaconda/install/uninstall/
[6] python.org: https://www.python.org/
[7] Pip国内的镜像源: https://mirrors.tuna.tsinghua.edu.cn/help/pypi/
[8] opencv的不同版本: https://pypi.org/project/opencv-python/3.4.9.33/#history
[9] SCL软件集: https://www.softwarecollections.org/en/scls/user/rhscl/
![bd13e1c3cd68fd3b6446e31a20d73933.png](https://i-blog.csdnimg.cn/blog_migrate/b5c1adb42cde03ece8b592d2e8d7447d.png)
![94e3151a7aeea612a39bb24be9111bc9.png](https://i-blog.csdnimg.cn/blog_migrate/b79ab0e7632aee638fdb5ab400f47b49.png)
![bf6b50abbd670d1780835467109597af.png](https://i-blog.csdnimg.cn/blog_migrate/bfe4566ffafdcd6d0b524959789cf02d.png)