技术交流28群

服务热线

135-6963-3175

微信服务号

python之conda总结 更新时间 2024-4-25 浏览2425次

相关命令

conda
conda init
conda -V
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/\n
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/\n
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/\n
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/\n\n
#场景虚拟环境
conda create -n tens python==3.11
conda config
conda config --show channels
#激活环境
conda activate tens


1、安装生效范围

切换环境后用pip install安装(只对当前环境生效),不激活环境用conda install安装会对所有环境生效(无论是否虚拟)

切环境(conda激活环境)后用pip install安装   =  conda激活环境后conda install

不激活环境的话conda install安装会对所有环境生效,pip install可能安装到默认的全局环境中



在使用pip install安装包时,如果没有激活任何虚拟环境,安装的包将会被安装到系统的全局环境中。这意味着所有使用该 Python 解释器的项目都能访问安装的包。


2、区别

pip是Python的默认包管理器,用于安装Python包。它主要用于安装Python包,并且通常与Python的虚拟环境一起使用。

conda是一个综合性的包管理器,用于管理各种软件包,不仅限于Python包。它是Anaconda发行版的一部分,专门用于数据科学和机器学习领域。


pip没有内置支持环境隔离,需要依赖其他工具如virtualenv或venv来创建隔离的环境;

conda能够直接创建和管理隔离的环境,简化了多版本软件和不同语言包的共存问题。


因为1的原因,conda安装多个环境时,因为这些虚拟环境互相关联,所以同一个包只需要安装一次,且在同一个目录里,由conda通用管理,而pip每次安装只是在当前的虚拟环境下。



conda env export 可以导出yaml依赖


pip install对requirement.txt生效,conda install 对yaml依赖有效

可在创建并激活环境后进行pip install

pip install -r requirements.txt  (这样可保证只安装到虚拟环境,不影响其他环境)


3、每个项目依赖不一样的话,公用一套环境就会有很多冗余包,依赖差不多的项目可共用一套环境




针对项目下的venv目录:

venv 目录通常是由使用 Python 自带的 venv 模块创建的,而不是由 conda 创建的。

`conda` 和 `venv` 是两种不同的工具,用于创建和管理 Python 虚拟环境,它们有一些重要的区别:

1. **工作原理**:

   - `venv` 是 Python 的标准库中的模块,用于创建 Python 虚拟环境。它通过复制系统中的 Python 解释器和标准库来创建一个独立的、隔离的 Python 环境。

   - `conda` 是一个综合性的包管理器,专门用于数据科学和机器学习领域。它包含了一个环境管理器,可以创建和管理 Python 虚拟环境,但它不仅限于 Python,还可以管理其他语言的软件包和依赖项。


2. **依赖解决**:

   - `venv` 创建的虚拟环境只包含了 Python 解释器和标准库,使用 `pip` 管理 Python 包。它的依赖解决能力相对较弱,可能会导致依赖冲突或不兼容的问题。

   - `conda` 创建的虚拟环境包含了 Python 解释器、标准库以及一个完整的包管理系统。它使用 `conda` 命令来管理包,具有更强大的依赖解决能力,可以确保安装的软件包及其依赖项之间的版本兼容性。


3. **跨平台支持**:

   - `venv` 是 Python 的标准库模块,因此在所有支持 Python 的平台上都可以使用。

   - `conda` 是一个独立的软件包管理器,可以在所有主流操作系统上使用,但它的主要目标是在数据科学和机器学习领域中使用。


4. **生态系统**:

   - `venv` 是 Python 的官方标准库模块,它的生态系统相对较小,主要集中在 Python 社区。

   - `conda` 是 Anaconda 发行版的一部分,它有一个庞大的生态系统,包含了大量常用的数据科学和机器学习工具、库和软件包。


综上所述,`venv` 和 `conda` 都可以用来创建和管理 Python 虚拟环境,但它们的设计目标、功能和生态系统有所不同,你可以根据自己的需求和偏好选择适合你的工具。



venv的使用

1、创建环境

python -m venv myenv

2、激活环境

source myenv/bin/activate (Unix 或 macOS 上) 或者 myenv\Scripts\activate  (Window)

3、安装包

激活虚拟环境后,你可以使用 pip 来安装项目所需的软件包。安装的软件包将会被安装到当前激活的虚拟环境中,而不会影响到其他环境或系统的默认环境。

4、退出虚拟环境:

当你完成工作后,可以使用 deactivate 命令来退出虚拟环境,返回到系统默认环境中。