用conda创建python虚拟环境

转载 https://blog.csdn.net/leviopku/article/details/84548816
其他可参考
要记得根据自己所需的python版本去下载对应的anaconda
python2对应bash Anaconda2-4.3.0-Linux-x86_64.sh
1)完整 https://blog.csdn.net/xi_zhong/article/details/83422225
https://www.cnblogs.com/Bella2017/p/9939200.html
2)服务器安装anaconda https://blog.csdn.net/m0_37548423/article/details/81173678
https://www.jianshu.com/p/e298b9d3afae
https://www.jianshu.com/p/50c056bafd32
3)利用conda安装包https://jingyan.baidu.com/article/00a07f380214f982d028dc0c.html
https://zhuanlan.zhihu.com/p/94744929
https://jingyan.baidu.com/article/00a07f380214f982d028dc0c.html
https://www.dazhuanlan.com/2019/11/05/5dc16bb3b0c0d/

anaconda是十分方便的python全家桶,除此之外,anaconda还可以创建出python虚拟环境。可以说是十分强大了。


之前,我整理了一篇关于pip创建虚拟环境的博文:《pip建立虚拟环境

当然,学会pip建立虚拟环境和conda建立虚拟环境的效果都是一样。所以掌握其一就行了,或者根据实际情况使用其中的一种。

首先要明白为什么要创建虚拟环境

我们经常需要复现别人的工程,不过每个开发者所使用的开发环境不尽相同,有的使用python2,有的使用python3,有的使用tf,有的又使用pytorch等等。那我们是否需要把所有的模块都装好呢?

答案是可以的,不过你无法安装多个版本的tf,如果你需要复现的工程是基于tensorflow 1.4.0的,而你自己的版本是1.9.0,是否要降版本来营造和人家一样的环境呢?是否每次都要通过换自己本地的版本以达到工程的兼容性呢?

虚拟环境可以很好地缓解这个尴尬


我们在服务器上下载好anaconda以后,直接用

sh Anaconda*.sh
 
 

就可以完成anaconda的安装,记住需要配置好anaconda的环境变量。方法如《Linux系统设置环境变量

设置好以后,可以查看conda下面安装了哪些模块:

conda list
 
 

和pip list的用法是一样的,我们可以看到详细的模块信息。


conda安装虚拟环境

conda create -n my_env_name python=3.6
 
 

这样就创建了一个名字为my_env_name,基于python版本3.6的一个虚拟环境了。注意,这里和pip建立的虚拟环境不同,pip建立的虚拟环境会直接在当前目录下生成一个虚拟环境的目录,激活虚拟环境也需要指定这个目录才行。而conda安装的虚拟环境,只会把虚拟环境的目录生成在anaconda安装目录下的env目录下。所以,conda创建的虚拟环境有一个很大的优点就是不用指定虚拟env的路径,不过前提是你需要把conda的环境变量早早设置好。

我们看看conda虚拟环境的激活脚本:

source activate my_env_name
 
 

激活之后,命令行的最前面就会出现虚拟环境的名字如下:

(my_env_name)wozuishuai@ak47-ml:~$
 
 

出现了前面那个小括号就代表以及进入了虚拟环境,那我们就可以用conda随便装模块了,只会影响到你的虚拟环境。

conda install -n my_env_name [package]
 
 

在这里,我们可以明显知道什么时候该用conda建立虚拟环境以及什么时候该用pip建立虚拟环境。

当我们觉得这个虚拟环境可能用得比较多,适用其他工程的时候,我们可以用conda来建立。这样能够全局照顾,不需要每次指定路径。

当我们觉得这个虚拟环境也许只在这个工程下用到,我们就用pip来建立,这样不容易发生env目录下的命名冲突,而且每次打开工程目录可以看到虚拟环境的目录躺在列表里,你就知道需要先激活虚拟环境再run你的代码了。

如果需要退出虚拟环境,可以用以下脚本:

source deactivate
 
 

查看Conda环境下所有的虚拟环境

conda info --envs
 
 

 


删除Conda虚拟环境 

conda remove -n my_env_name --all
 
 

my_env_name对应的就是要删除的虚拟环境名称


使用文件直接配置虚拟环境的模块包

我们可以对虚拟环境中所需要的模块列一个心愿列表,比如使用yml文件来列:


 
 
  1. name: my_env_name
  2. dependencies:
  3. - python=3.6
  4. - pytest
  5. - keras
  6. - tqdm
  7. - Pillow
  8. - pip:
  9. - tensorflow

把上述内容放在yaml文件里,比如命名为env_config.yml

那我们想直接生成这么一个环境只需要:

conda env create -f env_config.yml
 
 

 然后,用同样的方式激活虚拟环境就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静静喜欢大白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值