简介
miniconda是什么呢? 这里简单用一个公式来说明 miniconda = virtualenv + pyenv + pypi源
通过miniconda可以实现创建隔离的python包环境,下载特定的python包版本,使用conda源上编译好的whl包。可以说一应俱全。
安装
miniconda在Mac可以直接用Brew安装,一行命令 brew install miniconda
如果没有安装brew,可以直接下载专门的sh,然后命令行 bash Miniconda3-latest-MacOSX-x86_64.sh
来实现安装,也很方便。
sh脚本其实是一个自解压安装包,脚本有50M左右。
使用
安装完之后,重新打开Terminal就可以使用了。
安装完之后最明显的特定就是, 命令提示符PS1前面多了一个 (base)
这个代表conda当前使用的环境。
conda可以有多个环境,使用命令可以快速创建出来一个,比如用下面这个命令创建出一个python3.4的环境
$ conda create python=3.4 --name py34
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json):
The following NEW packages will be INSTALLED:
ca-certificates conda-forge/osx-64::ca-certificates-2021.10.8-h033912b_0
certifi conda-forge/osx-64::certifi-2017.1.23-py34_0
libzlib conda-forge/osx-64::libzlib-1.2.11-h9173be1_1013
ncurses conda-forge/osx-64::ncurses-5.9-10
openssl conda-forge/osx-64::openssl-1.0.2u-h0b31af3_0
pip conda-forge/noarch::pip-20.3.4-pyhd8ed1ab_0
python conda-forge/osx-64::python-3.4.5-2
readline conda-forge/osx-64::readline-6.2-0
setuptools conda-forge/osx-64::setuptools-32.3.1-py34_0
sqlite conda-forge/osx-64::sqlite-3.13.0-1
tk conda-forge/osx-64::tk-8.5.19-2
wheel conda-forge/noarch::wheel-0.37.1-pyhd8ed1ab_0
xz conda-forge/osx-64::xz-5.2.5-haf1e3a3_1
zlib conda-forge/osx-64::zlib-1.2.11-h9173be1_1013
Proceed ([y]/n)? y
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate py34
#
# To deactivate an active environment, use
#
# $ conda deactivate
然后使用命令 conda activate py36
就激活了环境。
使用which pip3
可以看到pip3的路径 /opt/homebrew/Caskroom/miniconda/base/envs/py36/bin/pip3
然后pip3 install requests
就安装到了该该python对应的lib目录下。
其他常用命令
# list current envs
conda info --envs
# 创建新的环境
conda create -n bunnies python=3.4 astroid
# 激活环境
conda activate snowflakes
# 退出环境
conda deactivate
# 复制环境
conda create -n flowers --clone snowflakes
# 删除环境
conda remove -n flowers --all
Cheetsheet https://kapeli.com/cheat_sheets/Conda.docset/Contents/Resources/Documents/index
原理小讲
# 在bash中使用 type conda 可以查看conda到底是啥。
conda ()
{
\local cmd="${1-__missing__}";
case "$cmd" in
activate | deactivate)
__conda_activate "$@"
;;
install | update | upgrade | remove | uninstall)
__conda_exe "$@" || \return;
__conda_reactivate
;;
*)
__conda_exe "$@"
;;
esac
}
这里可以看到conda实际上对应一个函数,通过函数就可以调整PATH变量,进而改变我们使用的Python。也可以通过修改PS1变量修改命令提示符。
总结
写的不是很多,欢迎拍砖