强烈建议使用conda
第一个坑:
- 不使用 conda 进行 Python 环境管理
- 直接使用本地的 Python 环境容易导致混乱
conda 安装
-
指定下载源
export DL_SITE=https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda -
使用 wget 进行下载
wget -c $DL_SITE/Miniconda3-py38_4.10.3-Linux-x86_64.sh -
执行安装脚本
bash Miniconda3-py38_4.10.3-Linux-x86_64.sh -
重启命令行环境, 使安装成功
source ~/.bashrc
上面使用的是3.8的基准Python环境, 可以根据实际需求来改
访问下载源网站找到对应的文件, 在第二步把文件名改了就行
虚拟环境
第二个坑:
- 没有使用 Python 3.8 的版本
- nemo 1.4 与 Python 3.8 严格绑定, github 的官网都推荐使用这个版本
conda 中如何创建虚拟环境?
>conda create -n env_name python = 3.x
- env_name 填写的是环境名称
- 后面 python= 的后面填写的是 python 版本
第三个坑:
python 版本那里的等号不能像下面这样空出来
下面这种写法才是正确的
然后就会出现一系列的东西
按 y 安装即可
第四个坑
- 不按照文档里面的要求使用 virtualenv
- 请正确使用文档内的安装步骤, 否则 tao 工具很有可能出现一系列的环境异常
conda 和 virtualenv 区别
这张图已经很清楚的说明了他们的层次关系, conda 的层级是高于 virtualenv 的
conda 的环境隔离原理
- 营造类似系统环境变量的东西
- 处于某个虚拟环境的时候, 使用的环境变量优先使用 conda 预设置的值
- 所以 conda 可以游刃有余的将不同版本的各个环境隔离
virtualenv 存在的意义
既然 conda 已经这么牛逼了, 为什么还需要 virtualenv ?
conda 虽然可以做到大环境的隔离, 但是有一点是需要 virtualenv 来补充完善的
那就是——软件包环境隔离, pip 下载的时候, pip 会根据当前环境来推荐软件包版本, 同时也可以指定软件包版本, 如果说有这么一种需求:
- 我就是要某个特定的软件包版本, 但是我的其他环境都不支持这个包, 可某个软件就是只能在这个环境中运行, 那我该怎么办呢?
- virtualenv 就能做到这一点
- 所以 virtualenv 是依赖于大环境的, 在某些小的软件包版本做小修小补的工具
- 正是有 virtualenv ,才不至于需要使用 pip 一直来回切换软件版本, 卸了又下, 下了又卸, 兜兜转转, 无穷无尽