必备技能,conda创建python虚拟环境,完美管理项目

  • 2019 年 12 月 23 日
  • 笔记

在尝试各种项目的时候,比较烦人的问题就是环境配置问题,然而更烦人的就是在你做一个个项目的时候,突然发现以前可以正常运行的代码挂了。

那很可能是因为环境配置问题。

对于每个项目,都会说明所需要的基本库/包。

举个例子

https://github.com/ultralytics/yolov3

以pytorch版的yolov3为例,有一个Requirements.txt文件,说明这个项目所需要安装包

# pip install -U -r requirements.txt numpy opencv-python torch >= 1.3 matplotlib pycocotools tqdm Pillow

对于不同项目有不同的需求,如果在同一个环境下运行这些项目,很可能会出现某些包的版本冲突等问题。

因此需要虚拟环境来隔离不同的项目,以避免环境无论。

这里演示linux系统下如何使用conda实现虚拟环境的创建操纵。

(1)在系统中安装Anaconda

(相对来说还是比较容易安装的)这里推荐知乎上高赞的文章,包含 windows ,linux, mac三个系统的安装教程https://zhuanlan.zhihu.com/p/32925500

安装完成后在终端中输入,查看conda版本

conda -V  # 输出 conda 4.7.12

(2)conda一些常用的命令

1)conda list 查看安装了哪些包

conda list

2)conda info -e查看系统中存在的虚拟环境

conda info -e

3)conda update conda 检测更新

conda update conda

会显示大量的需要更新吧,按需要更新

(3)创建虚拟环境

命令规则:conda create -n env-name python=xx

利用conda创建虚拟环境需要制定新建的虚拟环境的名称以及python的版本

假设这里 新建的虚拟环境名称为 AI_study,python版本为3.6(可根据自己的需求设置)

conda create -n AI_study python=3.6

enter确认后,会提示有哪些新的包需要安装,输入y即可安装并完成虚拟环境的建立。

完成会显示:

Preparing transaction: done  Verifying transaction: done  Executing transaction: done  #  # To activate this environment, use  #  #     $ conda activate AI_study  #  # To deactivate an active environment, use  #  #     $ conda deactivate

注释的内容告诉我们如何激活和关闭虚拟环境

当然此时也可以用conda info -e 查看新建的虚拟环境

conda info -e  # 输出结果  # conda environments:  #  base                  *  /home/user/miniconda3  AI_study                /home/user/miniconda3/envs/AI_study

AI_study为虚拟环境名

/home/user/miniconda3/envs/AI_study为虚拟环境的保存路径,可以cd到改路径下查看所安装的包

(4)激活和关闭虚拟环境

当你想激活新建的虚拟环境时

conda activate AI_study  # 输出和变化效果  (base) user@user-PC:  ——> (AI_study) user@user-PC:

当你想关闭当前的虚拟环境时

conda deactivate  # 输出和变化效果  (AI_study) user@user-PC:  ——> (base) user@user-PC:

(5)删除虚拟环境

命令规则:conda remove -n env-name –all

假设删除 AI_study 虚拟环境

conda remove -n AI_study --all  # 提示Proceed ([y]/n)?  # 输入  y  # 结果  Preparing transaction: done  Verifying transaction: done  Executing transaction: done  # 再次输入conda info -e查看结果

删除某个包

命令规则:conda remove –name env-name package-name