当前位置:网站首页>conda虚拟环境总结与解读
conda虚拟环境总结与解读
2022-07-28 03:44:00 【亦梦亦醒乐逍遥】
文章目录
前言
csdn上有很多关于conda的文章,但是一直没有一个宏观一些的文章,我将从宏观角度出发,对文章进行一个整合,解读,将新同学从conda环境入门到配置,应用全流程进行解读。
当然,这篇文章因为是宏观一些,可能很多同学不能一次性看懂,没关系,这个可以反复看,在不同阶段都可以提供帮助。
conda环境概述
conda有什么用
一般需要用conda的时候,python已经学到一定程度了,开始进行一些应用了,这时就会有一种场景:A任务需要x,y包,B任务需要z,w包,但是y包和z包冲突,你无法同时做AB任务。
这时就需要用两个conda环境,分别安装xy包以及zw包,两个环境互相隔离,互不影响。
具体点,比如A代码需要tensorflow 1,B代码需要tensorflow 2,这也需要两个环境来分别承载。
进一步,如果你觉得某个环境不好了,直接进行一个删除,重装环境也很容易。
很好用吧,至于具体怎么在各种IDE中用,怎么切换,大致就如下图,很方便,配置好以后就可以一键切换。

conda的环境层级
前面说了,conda可以创建若干个虚拟环境,你的电脑也可以安装python环境,miniconda也会自带python环境,这几个环境有什么关系呢?
首先是电脑的python环境和Miniconda环境应该是同一等级的,那当你在命令行里运行python命令的时候,优先选择哪个取决于环境变量的配置。一般安装了Miniconda,尤其是勾选了将路径添加到path后,默认的环境就会变成Miniconda自带的python。
我们把这两个称作基础环境,在miniconda里一般叫base或者root。
之后就是conda create创建的虚拟环境了,这些都是子环境。虽说叫子环境,但是实际上实际使用base和其他环境没太大区别,只不过不可以删除,所以从逻辑上我们把他提高高度,把全局的包都按在base里。

Miniconda安装
与Anaconda的对比
很多人推荐安装anaconda,但是我推荐miniconda。
anaconda相当于一大堆包+conda工具,但是实际上这一大堆包没几个能用上的,占用空间太大,而且重装也很麻烦。
miniconda相当于一点基础包+conda工具。缺的包到时候自己安装就好。
我推荐尽量用miniconda从头开始安包,你对包的理解会更深。
注意版本与安装包来源
很多人就喜欢往高版本安,但是你去看工业界,都是用的稳定版,高版本一方面不稳定,另一方面环境适配也不太好。容易出现基础环境下包冲突的问题。
所以推荐安装3.7版本64位的Miniconda。
还有,推荐到官网下载,镜像网站下下来的,可能会有问题,这边有一个朋友就是被镜像搞了一下午心态,结果换回官网一下就成了。
conda命令
conda工具的命令网上有很多。
需要注意的是,在虚拟环境里(包括base环境)安装包的时候,尽量用conda而不是pip,因为conda在包依赖的管理上更好。当我们conda安不了的时候,才能用pip。
虽然在conda环境里用pip也可以把包安到虚拟环境里,但是终归会有未知的影响。
conda install package_name
jupyter notebook安装+扩展
安装层级
首先你要知道,jupyter notebook是一个IDE,一个用户只需要一个IDE即可,而IDE可以调用各种conda虚拟环境,这说明jupyter notebook的层级,应该是miniconda级别的,是基础环境级别的。
所以直接在base里运行命令安装
jupyter notebook
conda install jupyter
虚拟环境切换插件:nb_conda
光有虚拟环境还不行,要想在jupyter notebook里切换,需要一个插件。
conda install nb_conda
不过,后面还需要在conda环境里安装ipykernel才行。
主题切换插件:jupyter_themes
换一个清新的主题,调一调字体等布局,会很舒服。
扩展插件集合:nb_extensions
更多插件可以提高效率。
conda环境创建与基本配置
一般安装只需要两个注意点,一个是name,一个是python版本
如果没有特别要求,一般安装3.7或者3.8。不加python版本命令,他就会安装3.10,这个版本的python不是很好用。
conda create -n env_name python=3.8
之后就可以激活conda环境进行进一步配置了
conda activate env_name
安装ipykernel,否则不会被nb_conda插件识别出来。很多文章里都写得是安装jupyter notebook,他们比较菜,没有认识到本质,其实只需要一个kernel即可,没必要安装整个jupyter.
conda install ipykernel
conda环境完善
基本命令
到这里,在jupyter notebook里就可以随意切换conda环境了,之后就是环境自定义了,想安什么包就安什么包即可。
conda install package_name
包找不到的情况
有时候conda找不到,可以添加-c conda-forge命令使用额外源,以pynput库举例
conda install pynput -c conda-forge
最后的最后,没办法了,你再用pip
pip install package_name
下载速度太慢
这个主要是因为软件包源头
使用场景:IDE中使用
jupyter notebook中
其实这个前面已经说完了。
vscode&PyCharm
这两个IDE都可以在右下角切换环境,其中conda环境也可以切换。
进阶:Miniconda目录结构

第一级是Miniconda根目录,下面有若干个文件夹:
- bin有二进制文件
- scripts也是可执行的脚本文件
- Lib是base环境的库,其中site-packages是conda install的位置
- envs是虚拟环境目录。

envs下有若干目录,目录名字与虚拟环境名字对应

进入某个虚拟环境目录,Lib目录下面是虚拟环境的库
其中site-packages是conda install的位置。
这种层级结构符合我们前面说的,虽然base用的时候和虚拟环境类似,但是本质上base是凌驾于虚拟环境之上的。
边栏推荐
- C语言力扣第45题之跳跃游戏 II。遍历跳跃
- input 上传文件并回显 FileReader并限制选择文件时的类型
- 我的创作纪念日
- WordPress简约mkBlog博客主题模板v2.1
- 动态规划——62. 不同路径
- LabVIEW loads and uses custom symbols in tree control projects
- Redis basic operation
- Xctf attack and defense world web master advanced area unserialize3
- 一文读懂Plato Farm的ePLATO,以及其高溢价缘由
- 动态规划——63. 不同路径 II
猜你喜欢

一文读懂Plato Farm的ePLATO,以及其高溢价缘由

Xctf attack and defense world web master advanced area php2

Implementation of online rental system based on SSM

【力扣】1337.矩阵中战斗力最弱的k行

TypeError: ufunc ‘bitwise_ and‘ not supported for the input types, and the inputs could not be safely
![[force deduction] 1337. Row K with the weakest combat effectiveness in the matrix](/img/6c/b5fd3350886fd74557439f5361e7f8.png)
[force deduction] 1337. Row K with the weakest combat effectiveness in the matrix

How to uninstall clean ZABBIX service? (super detailed)

Airiot Q & A issue 6 | how to use the secondary development engine?
![2022-07-27:小红拿到了一个长度为N的数组arr,她准备只进行一次修改, 可以将数组中任意一个数arr[i],修改为不大于P的正数(修改后的数必须和原数不同), 并使得所有数之和为X的倍数。](/img/24/fbf63272f83b932e0ee953f8d4db75.png)
2022-07-27:小红拿到了一个长度为N的数组arr,她准备只进行一次修改, 可以将数组中任意一个数arr[i],修改为不大于P的正数(修改后的数必须和原数不同), 并使得所有数之和为X的倍数。

最新版宝塔安装zip扩展,php -m 不显示的处理方法
随机推荐
递归和非递归分别实现求第n个斐波那契数
Xctf attack and defense world web master advanced area php2
Leetcode skimming: dynamic programming 08 (segmentation and subsets)
leetcode刷题:动态规划08(分割等和子集)
贪心——122. 买卖股票的最佳时机 II
Asemi rectifier bridge gbpc5010, gbpc5010 parameters, gbpc5010 size
单调栈——42. 接雨水——面大厂必须会的困难题
BRD,MRD,PRD的区别
ES6 from getting started to mastering 09: symbol type
Super nice PHP program source code of nteam official website
Volvo: what on earth does the deep-rooted "sense of security" rely on?
Qt:qmessagebox message box, custom signal and slot
静态博客搭建工具汇总
VBA reads the create document of SQL in batches to create tables
单调栈——739. 每日温度
Prefix-Tuning: Optimizing Continuous Prompts for Generation
8000字讲透OBSA原理与应用实践
A treasure simulates login and reduces the method of secondary verification
Push chart written by helm to harbor warehouse
Prefix-Tuning: Optimizing Continuous Prompts for Generation