小白的Conda学习笔记
什么是conda
conda是一个开源的、跨平台的软件包管理和环境管理系统,它适用于多种编程语言,包括Python、R、Ruby、Lua、Scala、Java、JavaScript和C/C++等。
Conda被广泛用于快速安装、运行和更新软件包及其依赖项。它支持在本地计算机上轻松创建、保存、加载和切换开发环境,起初是为Python开发的,但现在可以打包和分发适用于任何语言的软件。
conda相当于在Linux中为开发者设置不同的生态
Conda与Anaconda有什么区别
Conda是一种功能集合,主要负责软件包管理的功能。
Anaconda是一个发行版的软件,它集成了Conda功能,方便用户使用。
除了Conda,还有其它类似的工具吗
有的。有多种工具可以创建虚拟环境,包括venv、virtualenv和miniconda等
什么是Python的虚拟环境
虚拟环境是用于创建隔离的Python环境的工具,它让开发者能够为不同的项目指定各自的依赖项,从而避免了不同项目间因依赖关系不同造成的冲突。通过虚拟环境,可以保证每个项目的运行环境独立,不会受到其他项目的影响。
虚拟环境在Python开发中扮演着重要的角色。它们解决了不同项目可能依赖同一库但版本不同导致的冲突问题,并确保了项目的移植性和一致性。
虚拟环境的主要目的是提供一个封闭的空间,在这个空间内,可以自由地安装和卸载软件包而不影响到其他环境。
创建并管理虚拟环境
方式一:命令行(前提是当前的wsl或者ubuntu自带了轻量版的conda)
创建环境文件夹
为了组织不同的虚拟环境,可以创建一个专门的文件夹来存放环境。例如,创建一个D:\Envs\chatglm文件夹。
创建新的虚拟环境(子环境)
使用conda create --prefix /path/to/environment python=版本号命令创建新的虚拟环境。例如,若要创建一个名为chatglm的环境,并使用Python 3.9。
\\指定路径建立虚拟环境,所有软件包和依赖,以后都会下载到这个目录里
conda create --prefix D:\Envs\chatglm python==3.9
\\注意,虚拟环境名不是chatglm,而是D:\Envs\chatglm
\\不带路径建立虚拟环境,所有软件包和依赖,以后都会下载到conda所在的目录里
conda create -n 虚拟名 python=3.8
激活虚拟环境
创建完环境后,需要激活它才能开始工作。使用source activate /path/to/environment命令来激活环境。对于上例,命令将是:
\\激活带路径的虚拟环境,注意,虚拟环境名不是chatglm,而是D:\Envs\chatglm
source activate D:\Envs\chatglm
\\激活不带路径的
conda activate 虚拟名
配置和管理Conda源
添加国内镜像源
为了加快包的下载速度,可以配置Conda使用国内的镜像源。例如,使用清华的镜像源可以通过以下命令配置:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
Python软件包管理
conda在不同的虚拟虚拟之间切换,因此可以分别安装所需的软件包和依赖,为开发者提供提供不同环境的不同版本的软件包、依赖、包括不同版本的python。
环境的保存与共享
导出环境:如果需要将环境配置分享给其他开发者或者在不同的机器上重建环境,可以将环境配置导出到一个YML文件中。
conda env export > environment.yml
导入环境:在其他机器上,可以通过命令来重新创建相同的环境。
conda env create -f environment.yml
常用命令
//查看当前建立了哪些虚拟环境
conda info --envs
conda env list
//关闭环境
source deactivate 虚拟名
//删除环境
conda env remove -p 虚拟名
//--all参数表明要删除整个环境
conda remove -n 虚拟名 --all
//确认conda是否正确安装,并查看其版本号。
conda --version
//
方式二:win窗口
安装Anaconda
在Anaconda官网下载后双击安装就完了,就不用在命令行下载、安装、配置Conda。我们既可以在窗口里操作,也可以在命令行操作各种conda命令了。
在窗口操作,建立,切换不同Python版本的环境,查看该环境已安装哪些软件,这些软件的版本号,同时还能看见–可以安装但未安装的软件包。
也可以进入当前虚拟环境的命令行,敲键盘执行命令。
windows平台wsl2下使用conda的注意事项
在win11系统下,以windows方式双击官方Anaconda_x86_64.exe完成安装后,在命令行窗口或者PowerShell窗口下,有的conda命令可执行,有的不行,报找不到命令。但在Anaconda图形界面启动的命令窗口,可以全部执行(下图)。
区别于shell窗口,在Anaconda图形界面启动的命令窗口,命令行左边显示了当前所处的虚拟环境名称,敲键盘执行各种Conda命令基本不会报错。
在网上拉取一个开源的项目,是不是必须存放在创建的虚拟环境同一文件夹里?
在Python开发中,虚拟环境主要用于隔离不同项目的依赖关系,以避免不同项目间因依赖库版本不同造成的冲突。虽然将项目与对应的虚拟环境放在同一目录下有助于管理和维护,但这并不是强制性的要求。
尽管项目代码不必直接存放在虚拟环境的文件夹内,通常建议将环境与项目代码放在同一个父目录下。这样做的好处是,它简化了部署和版本控制系统(如Git)的使用,使得与项目相关的所有元素(包括代码、数据、环境和配置文件等)都能被统一处理。
例如,可以在项目的根目录下创建一个名为venv的文件夹来存放虚拟环境
此外,一些集成开发环境(IDE),如PyCharm,允许直接在IDE中创建和管理虚拟环境。在这种情况下,IDE会自动处理环境与项目之间的关联,进一步简化了操作流程。
虚拟环境能删除吗?删除以后,是不是之前下载的软件包和依赖都自动删除了?
是的,删除虚拟环境后,之前下载的软件包和依赖都会随着环境的删除而自动移除。
当一个虚拟环境不再需要时,可以将其删除来释放空间并保持系统的整洁。