为什么需要python包管理
- 如果我在本地只有一个python环境,所有程序用到的各种包都只能放到同一个环境中, 导致环境混乱。
- 当我将写好的程序放到另一电脑上运行时又会遇到缺少相关包, 需要自己手动一个个下载的情况, 实在是烦人。
- 要是能每个程序开发都选用不同的环境, 而开发好之后又能将该程序需要的环境(第三方包)都独立打包出来。
anaconda管理python包和环境
-
activate: activate 能将我们引入anaconda设定的虚拟环境中, 如果你后面什么参数都不加那么会进入anaconda自带的base环境,
-
activate:创建自己的虚拟环境,我们当然不满足一个base环境, 我们应该为自己的程序安装单独的虚拟环境. 做法:
创建一个名称为learn的虚拟环境并指定python版本为3(这里conda会自动找3中最新的版本下载)conda create -n learn python=3
-
切换环境
activate learn
-
查看所有的环境
conda env list
-
安装第三方包
conda install requests
pip install requests
-
卸载第三方包
conda remove requests
pip uninstall requests
-
查看环境包信息
conda list
-
导入导出环境
如果想要导出当前环境的包信息可以用conda env export > environment.yaml
-
当需要重新创建一个相同的虚拟环境时可以用
conda env create -f environment.yaml
以下做个总结:
activate // 切换到base环境
activate learn // 切换到learn环境
conda create -n learn python=3 // 创建一个名为learn的环境并指定python版本为3(的最新版本)
conda env list // 列出conda管理的所有环境
conda list // 列出当前环境的所有包
conda install requests 安装requests包
conda remove requests 卸载requets包
conda remove -n learn --all // 删除learn环境及下属所有包
conda update requests 更新requests包
conda env export > environment.yaml // 导出当前环境的包信息
conda env create -f environment.yaml // 用配置文件创建新的虚拟环境
举例:
-
创建一个名为python34的环境,指定Python版本是3.4(不用管是3.4.x,conda会为我们自动寻找3.4.x中的最新版本)
conda create --name python34 python=3.4
-
安装好后,使用activate激活某个环境
activate python34 # for Windows
source activate python34 # for Linux & Mac
-
激活后,会发现terminal输入的地方多了python34的字样,实际上,此时系统做的事情就是把默认2.7环境从PATH中去除,再把3.4对应的命令加入PATH
-
此时,再次输入
python --version
-
可以得到
Python 3.4.5 :: Anaconda 4.1.1 (64-bit)
,即系统已经切换到了3.4的环境 -
如果想返回默认的python 2.7环境,运行
deactivate python34 # for Windows
source deactivate python34 # for Linux & Mac
-
删除一个已有的环境
conda remove --name python34 --all