使用conda快速初始化项目python

python的环境管理方案很多,社区有很多解决方案,本文介绍一种常用的、支持多版本python、多人协作的、方便快捷的环境管理方案:miniforge-conda

环境准备

如果你想使用conda来管理你的Python环境和依赖,你需要在你的机器上安装Anaconda或Miniconda。Anaconda包含了conda,Python和150+科学包及其依赖。而Miniconda只包含了conda和Python,可以参考[[python环境依赖管理方案]]

但是,由于Anaconda对于商业用户(大型实体、公司和一些研究机构)需要购买许可证,个人用户暂时免费,为了避免后续个人使用也收费需要再次切换,笔者现在已经切换到社区维护版本的miniforge,两者都是使用conda作为包和环境管理工具,使用时命令几乎一样,能够做到无缝迁移

创建虚拟环境

为什么需要创建虚拟环境?
Python创建虚拟环境的目的是为了在同一台计算机上同时管理和运行多个独立的Python项目。虚拟环境提供了一个隔离的运行环境,使得每个项目可以拥有自己独立的Python解释器和依赖库,而不会相互干扰。

以下是创建虚拟环境的几个主要目的:

  1. 隔离项目:每个项目都可以在自己的虚拟环境中运行,避免不同项目之间的依赖冲突。这样可以确保每个项目都能够独立地使用所需的特定Python版本和依赖库。
  2. 管理依赖:虚拟环境允许您为每个项目单独安装和管理所需的依赖库。这样可以确保每个项目都使用其特定版本的依赖库,而不会受其他项目的影响。
  3. 简化部署:使用虚拟环境可以更轻松地将项目部署到其他计算机或服务器上。您可以将虚拟环境与项目一起打包,并确保在不同环境中具有一致的运行结果。
  4. 提高可移植性:虚拟环境使得项目在不同操作系统和计算机上的移植更加容易。您可以在不同平台上创建相同的虚拟环境,并确保项目在各个环境中都能够正常运行。

创建虚拟环境可以提供一个独立、隔离和可管理的Python运行环境,使得多个项目能够在同一台计算机上同时运行,而不会相互干扰。这为项目开发、依赖管理和部署提供了更大的灵活性和可靠性

注意在生成导出依赖项时,生成的记录文件类型一般是environment.yml或environment.txt,笔者这里是用的environment.yml

创建全新的项目

1
2
3
4
5
6
7
# 创建新项目
mkdir test-python-project && cd test-python-project
# 选择你需要的python版本来创建虚拟环境
# conda create --name {envname} python={version}
conda create --name myenv python=3.10
# 激活虚拟环境
conda activate myenv

安装依赖

1
2
# 安装依赖: 假设安装request库
conda install request

导出依赖及协同开发

为什么需要导出依赖呢?其实只有一个目的:保证项目在其他机器上能够运行。如果你项目依赖了几十个包,都分散在代码各处,要在其他机器上将这个项目运行起来,是多么的费事!所有我们必须有一个集中的地方将依赖管理起来,conda提供的一些常用的命令。

1
2
3
4
5
6
7
8
# 不带--name参数默认为当前项目已经激活的环境
conda env export > environment.yml
# 指定导出某个环境的依赖
conda env export --name myenv > environment.yml
# 创建一个和项目完全一样的虚拟环境
conda env create --file environment.yml
# 安装依赖
conda install --file requirements.yml

那么现在就可以愉快的编写代码了~