该博客为《Ubuntu 相关》系列博客的第十二篇,该系列博客主要对Ubuntu安装各种软件或者库进行一个记录,方便重装系统后快速恢复工作。
开始学习深度学习,陆续的就要安装一些深度学习的框架和一些常用的库,还有opencv,曾经装了一个星期没装上,这次直接用conda安装,不编译源码了。
Ubuntu16.04安装Anaconda(Python3.7版本)
为啥要装这个版本的呢,因为我想要安装PaddlePaddle和TensorFlow等深度学习框架,并且想用GPU加个速啥的,所以都想安装gpu版本的,然后综合考虑,需要安转Python3.7版本的Anaconda。
版本论证
-
上篇博客《Ubuntu16.04 GTX1050Ti安装CUDA10.0和cuDNN7.4.2》,我们安装了CUDA10.0和cuDNN7.4
-
TensorFlow-gpu的安装版本要求:(参见:https://www.tensorflow.org/install/source#linux)
想要满足TensorFlow的安装要求,我们可以安装python3.7。
下载Anaconda安装包
官网下载地址
https://www.anaconda.com/distribution/
想要安装历史版本可以看图片下方的白色小框。
清华镜像
https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
安装Anaconda
下载了python3.7对应的版本:Anaconda3-2019.10-Linux-x86_64.sh
在下载目录打开终端
bash Anaconda3-2019.10-Linux-x86_64.sh
一直按enter直到出现Do you accept the license terms? [yes|no]:
同意之后,选择Anaconda的安装路径
选择是否进行Anaconda的初始化,这个初始化应该是添加环境变量。
等运行完就安装完成成了!
查看一下环境变量:
sudo gedit ~/.bashrc
打开新的终端,运行python发现,已经是Anaconda环境下的了:
去除终端出现的(base)字样
可以通过修改conda的配置来实现永久更改。
step1:使用conda config --show
查看conda的配置,如下:
可以发现,之所以会出现base,是因为框中参数在作妖,即默认启动base,症状有了,接下来对症下药就行!!
step2:查看环境变量:
sudo gedit ~/.bashrc
# >>> conda initialize >>>
# !! Contents within this block are managed by 'conda init' !!
__conda_setup="$('/home/al007/anaconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)"
if [ $? -eq 0 ]; then
eval "$__conda_setup"
else
if [ -f "/home/al007/anaconda3/etc/profile.d/conda.sh" ]; then
. "/home/al007/anaconda3/etc/profile.d/conda.sh"
else
export PATH="/home/al007/anaconda3/bin:$PATH"
fi
fi
unset __conda_setup
# <<< conda initialize <<<
可以发现我们找到了问题的源头,那就是aconda自动加入了命令到 .bashrc中, 在我们打开终端的时候自动 执行了 conda activate base 命令,
于是乎就有了前面所说的问题。
我们可以更改一下环境变量:
export PATH="/home/al007/anaconda3/bin:$PATH"
我们只需要这一句就可以了,这样baes
字样就没有了,而且运行python也没有问题。
conda修改清华源
https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/
sudo gedit ~/.condarc
输入如下内容:
channels:
- defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_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/msys2
custom_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
即可添加 Anaconda Python 免费仓库。
运行 conda clean -i 清除索引缓存,保证用的是镜像站提供的索引。
conda安装opencv3
这一部分是我安装完成python3.6版本的anaconda之后补充的!
Anaconda的网盘链接:https://pan.baidu.com/s/1NKESc2Kvx3xzRzf1bGQLpg 提取码: u8zs
下载对应的包
官网地址:https://anaconda.org/menpo/opencv3/files
网盘地址:https://pan.baidu.com/s/1sm9gJnI9ocd-okyuOKS_YQ 提取码: vipp
下载了包:opencv3-3.1.0-py36_0.tar.bz2
安装
直接使用conda命令安装:
conda install opencv3-3.1.0-py36_0.tar.bz2
安装的很快!
然后测试程序:
import cv2
import numpy as np
clicked = False
def onMouse(event, x, y, flage, param):
global clicked
if event == cv2.EVENT_LBUTTONUP:
clicked = True
cameraCapture = cv2.VideoCapture(1)
cv2.namedWindow('MyWindow')
cv2.setMouseCallback('MyWindow', onMouse)
print("Showing camera feed. Click window or press any key to stop!")
success, frame = cameraCapture.read()
while success and cv2.waitKey(1) == -1 and not clicked:
cv2.imshow('MyWindow', frame)
print(frame.shape)
success, frame = cameraCapture.read()
cv2.destroyAllWindows()
cameraCapture.release()
没有问题:
CondaHTTPError: HTTP 000 CONNECTION FAILED for url
sudo gedit ~/.condarc
删除此行: - defaults
conda创建虚拟环境
conda常用的命令
# 查看安装了哪些包:
conda list
# 查看当前存在哪些虚拟环境
conda env list
conda info -e
# 检查更新当前conda
conda update conda
虚拟环境的作用
问题:如果在一台电脑上, 想开发多个不同的项目, 需要用到同一个包的不同版本, 如果使用上面的命令, 在同一个目录下安装或者更新, 新版本会覆盖以前的版本, 其它的项目就无法运行了.
解决方案 : 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.
创建虚拟环境的流程
- 在命令行输入
conda create -n xxx python=3.6
xxx为自己命名的虚拟环境名称,该文件可在Anaconda安装目录 envs文件下找到
- 使用激活(或切换不同python版本)的虚拟环境
python --version # 可以检查当前python的版本
Linux: source activate your_env_name(虚拟环境名称)
Windows: activate your_env_name(虚拟环境名称)
对虚拟环境中安装额外的包
conda install -n your_env_name [package]
关闭虚拟环境
Linux: conda deactivate
Windows: deactivate
删除虚拟环境
conda remove -n your_env_name(虚拟环境名称) --all
conda remove --name your_env_name package_name # 删除环境中的某个包