Python包管理及虚拟环境管理

虚拟环境介绍

Python/ target=_blank class=infotextkey>Python 应用经常需要使用一些包第三方包或者模块 , 有时需要依赖特定的包或者库的版本 , 所以不能有一个能适应所有 Python 应用的软件环境 , 很多时候不同的 Python 应用所依赖的版本是冲突的 , 满足了其中一个 , 另一个则无法运行 , 解决这一问题的方法是虚拟环境 。虚拟环境是一个包含了特定 Python 解析器以及一些软件包的自包含目录 , 不同的应用程序可以使用不同的虚拟环境 , 从而解决了依赖冲突问题 , 而且虚拟环境中只需要安装应用相关的包或者模块 , 可以给部署提供便利 。
虚拟环境并不是什么新技术 , 主要是利用了操作系统中环境变量以及进程间环境隔离的特性 。
Python 处理虚拟环境的包有好几种 , conda用得比较多 。
pip、Conda、virtualenv
pip 是最常用的包管理工具 , 通过 pip install <packagename> 命令格式来安装软件包 , 使用的是 pypi 软件包源 。安装python自带pip , 或者通过 yum install python-pip 安装 。
conda 多用作科学计算领域的包管理工具 , 功能丰富且强大 , 使用的软件包源是 Anaconda repository 和 Anaconda Cloud , conda 不仅支持 Python 软件包 , 还可以安装 C、C++ 、R 以及其他语言的二定制软件包 。除了软件包管理外 , 还能提供相互隔离的软件环境 。安装 Anaconda 自带 conda 。
virtualenv 是一个虚拟环境管理器 , 作为非数据科学领域的开发者来说是很实用的 。它可以让你每个项目甚至每个脚本配置一个自定义的Python解释器环境 , 这最大的好处是可以不污染开发环境 。可以通过 pip install virtualenv 安装 。
如果说venv是虚拟环境管理器 , pip是包管理器 , 那么conda则是两者的结合 。
conda虚拟环境是独立于操作系统解释器环境的 , 即无论操作系统解释器什么版本(哪怕2.7) , 我也可以指定虚拟环境python版本为3.6(见文章开头所说原博客) , 而venv是依赖主环境的 。
pip 安装python sudo apt-get install software-properties-common sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get update sudo apt-get install python3.6删除python sudo apt-get remove --auto-remove python3.4pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple some-package清空回收站命令: sudo rm -rf ~/.local/share/Trash/*conda 的使用验证及帮助 验证conda已被安装 , 打开“Anaconda Prompt” , conda --version 通过conda --help学习conda怎么使用清理conda 清理 conda conda clean -p//删除从不使用的包 conda clean -t//删除tar包 conda clean -a//删除索引缓存 , 锁定文件 , 未使用的缓存包和包conda的虚拟环境管理 1. 显示所有的虚拟环境:conda env list(注意目录:base 在基目录 , 其它后天的环境在 envs 内[C:anaconda3envs]) 2. 创建一个名为 zlltest 环境 , 指定Python版本是3.8或2.7conda create --name zlltest python=3.8#conda create --name zlltest python=2.7conda create --name zlltest python=3.7.1 --channel https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/3. 激活名为 zlltest 的环境conda activate zlltest# windowssource activate zlltest # linux/mac 4. 切换环境conda activate zlltest 5. 退出环境deactivate#windowssource deactivate #linux 6. 删除一个名为 zlltest 的环境conda remove --name zlltest --all 7. 克隆oldname环境为newname环境conda create --name newname --clone oldnameconda update -n base -c defaults conda conda clean --packages && conda clean --all && conda update --alconda的包管理 conda 的包管理功能是对pip的一种补充 , 如果当前已经激活了某个Python环境 , 那么就可以在当前环境开始安装第三方包 。conda list# 查看当前环境下已安装的packageconda search numpy # 查找名为 numpy 的信息 package 的信息conda install numpy# 安装名为 numpy 的包 (conda install numpy 会自动安装 mkl(intel 加速科学计算的包) , 而pip install numpy 则不会)conda update numpy# 更新numpy 包 conda uninstall numpy# 卸载numpy 包# -n指定环境 --channel指定源地址 conda install -n zlltest numpy # 在名为 zlltest 环境下安装 numpy 包# 使用地址 https://conda.anaconda.org/anaconda 来安装tensorflow conda install --channel https://conda.anaconda.org/anaconda tensorflow=1.8.0对于那些用 pip 无法安装成功的模块你都可以尝试用 conda 来安装 , 如果用 conda 找不到相应的包 , 当然你继续选择 pip 来安装包也是没问题的 。升级 conda update conda# 更新 conda conda update anaconda # 更新 anaconda conda update anaconda-navigator#update最新版本的anaconda-navigatorconda update python # 更新 python


推荐阅读