本文参考:
https://blog.csdn.net/chenxy_bwave/article/details/119996001
https://zhuanlan.zhihu.com/p/600930786
https://blog.csdn.net/d8958/article/details/131499072
https://blog.csdn.net/m0_57236802/article/details/131839362
https://blog.csdn.net/Natsuago/article/details/143212047
文章目录
conda简介
Anaconda 是一个用于数据科学和机器学习的软件套装,包含了许多工具和库。以下是一些常用的 Anaconda 命令。
conda命令的一些选项开关有两种指定方式,一种两个连接号“–”后跟选项名全程,一种是一个连接号“-”后跟简称。比如说"-n"和"–name"是等价的。但是要注意有些例外,比如说,“–version”对应的是“-V”(大写的V而不是小写的v)。
使用终端命令
打开Anaconda Prompt 或 Anaconda Powershell Prompt
创建和删除虚拟环境
使用 conda create 命令可以创建一个新的虚拟环境。
以下命令会创建一个名为 env_name 的虚拟环境,并指定 Python 版本为 3.8
如果我们没有指定安装python的版本,conda会安装我们最初安装conda时所装的那个版本的python
conda create --name env_name python=3.8
删除名为 env_name 的虚拟环境:
conda remove --name env_name --all
复制名为 env_name 的虚拟环境:
conda create --name env_name_old --clone env_name_new
查看当前虚拟环境列表
conda env list
所显示的列表中,前面带星号“*“的表示当前活动环境。
激活和退出虚拟环境
使用 conda activate 命令激活虚拟环境,使用 conda deactivate 命令退出当前环境。
conda activate env_name
conda deactivate
查看已安装的包
使用 conda list 命令查看当前环境下已安装的所有软件包及其版本。
conda list
安装和卸载包
指定虚拟环境名进行装包
conda install -n env_name package_name
激活虚拟环境,并在该虚拟环境下安装和卸载包
conda activate env_name
conda install package_name
conda remove package_name
安装指定版本号的包
conda install peckage_name==x.x
更新包
conda update peckage_name
查看python版本
python --version
通过pip安装包
pip install peckage_name
更新 conda 和 Anaconda
使用以下命令更新 conda 和 Anaconda 到最新版本。
conda update conda
conda update anaconda
换源
查看当前配置的所有源(channels)
conda config --show channels
添加国内源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --set show_channel_urls yes
删除源
conda config --remove channels <镜像源地址>
恢复为默认源
conda config --remove-key channels
使用图形界面
为什么要使用conda?
在企业开发中,我们经常需要同时管理多个项目,而这些项目可能依赖不同的Python环境或第三方库。使用Conda虚拟环境可以有效隔离不同项目的运行环境,避免冲突,具体体现在以下两方面:
-
Python版本隔离 不同项目可能需要不同版本的Python(如3.5、3.6、3.7等)。通过Conda虚拟环境,可以为每个项目创建独立的Python环境,确保项目运行在所需的版本上。
-
依赖库隔离 即使项目使用相同版本的Python,它们依赖的第三方库(如PyTorch、TensorFlow)及其版本可能不同。若将所有库安装在同一环境中,可能会因依赖冲突导致某些项目无法运行。例如:
项目A依赖PyTorch,项目B依赖TensorFlow,两者可能对底层库(如NumPy、CUDA)的版本要求不同。
在统一环境中安装TensorFlow时,可能会覆盖PyTorch所需的依赖,导致PyTorch项目运行失败。
通过为每个项目创建独立的虚拟环境,可以确保各项目的依赖库互不干扰,新项目的环境更新不会影响旧项目的稳定性。
conda install 和 pip install 有什么区别?
对比项 | conda install | pip install |
---|---|---|
包管理范围 | 可管理 Python 和非 Python 包(如 C 库) | 仅管理 Python 包 |
使用范围 | 只能在 conda 管理的环境中使用 | 可在任何 Python 环境中使用 |
环境管理 | 自带环境管理功能 | 需依赖 virtualenv 等工具 |
安装方式 | 预编译二进制文件,安装快 | Wheel 或源码,安装较慢 |
依赖管理 | 安装时自动处理依赖(包括非 Python 依赖),卸载时会递归移除依赖包 | 安装时不处理 Python 以外的依赖,卸载时仅移除指定包,不处理依赖 |
包缓存机制 | 全局缓存,可复用已下载的包 | 直接安装到当前环境 |
卸载方式 | 可用 conda 或 pip 卸载(但 pip 不处理依赖) | 只能用 pip 卸载 |
PyPI 兼容性 | 绝大部分兼容,部分包需通过 pip 安装 | 100% 兼容 |
conda的包安装在哪里?
conda install xxx:这种方式安装的库都会放在anaconda3/pkgs目录下,这样的好处就是,当在某个环境下已经下载好了某个库,再在另一个环境中还需要这个库时,就可以直接从pkgs目录下将该库复制至新环境而不用重复下载。
pip install xxx:分两种情况,一种情况就是当前conda环境的python是conda安装的,和系统的不一样,那么xxx会被安装到anaconda3/envs/current_env/lib/python3.x/site-packages文件夹中,如果当前conda环境用的是系统的python,那么xxx会通常会被安装到~/.local/lib/python3.x/site-packages文件夹中
conda和venv虚拟环境有什么区别?
跨平台和语言支持:虽然Python的虚拟环境专为Python设计,但Conda是一个跨语言的包管理器,它可以管理Python以外的其他语言(如R、Ruby、Lua、Scala、Java、JavaScript、C/ C++、FORTRAN等)的包。此外,Conda是跨平台的,可以在Linux、macOS和Windows上运行。
包管理:Python的虚拟环境依赖于Python的包管理器pip来安装Python包,而Conda有自己的包管理系统,可以安装Conda包。Conda包可以包含非Python的依赖(如C库),这在pip中是不可能的。
环境管理:Conda提供了一些额外的环境管理功能,如克隆环境(conda create --clone)和导出环境到一个文件(conda env export),这在Python的虚拟环境中是不可能的。
性能:由于Conda包可以包含预编译的二进制代码,因此安装Conda包通常比安装pip包更快,特别是对于包含大量C代码的包。
包安装位置:
venv 创建的虚拟环境会在项目目录下生成一个文件夹(通常叫 venv 或自定义名称),所有安装的第三方包都存放在该环境的 site-packages 目录中。路径结构示例:
my_venv/ # 虚拟环境目录
├── Scripts/ # 激活脚本(Windows)
├── bin/ # 激活脚本(Linux/macOS)
└── Lib/
└── site-packages/ # 所有安装的第三方包(Windows)
conda 的所有环境和包默认存储在 conda 的安装目录下的 envs/ 文件夹中。
conda_base/ # conda 安装根目录
├── envs/ # 所有虚拟环境
│ └── my_conda_env/ # 你的 conda 环境
│ ├── bin/ # 可执行文件(Linux/macOS)
│ ├── Scripts/ # 可执行文件(Windows)
│ └── lib/
│ └── python3.9/
│ └── site-packages/ # 包的软链接
└── pkgs/ # 全局包缓存(所有环境的包实际存储在这里)
总结:
venv:包完全隔离,适合轻量级项目,但占用更多空间。
conda:包全局缓存 + 软链接,适合科学计算,节省空间且依赖管理更强。