Conda项目管理

Conda 管理项目的核心好处

  1. 无需单独安装 Python,Conda 自带完整 Python 环境,可直接运行所有 Python 代码;
  2. 环境隔离,不同项目依赖互不冲突,彻底解决第三方库(如 pynini)编译报错问题;
  3. 多 Python 版本一键切换,无需反复卸载重装;
  4. 依赖统一管理,避免环境混乱、路径污染。

Miniconda3 安装(windows上用 Scoop 安装)

打开终端,执行 Scoop 安装命令(前提是已安装 Scoop):

1
scoop install miniconda3

安装完成后,重启终端,输入 python --version,显示 Python 版本即安装成功;无需额外配置环境变量,Scoop 会自动配置,可直接使用 pythonpip 命令。

Conda 与 Pip 安装依赖的区别

方式 安装来源 核心特点 适用场景
Conda conda-forge 等 Conda 仓库 下载 预编译二进制包,无需本地编译,Windows 兼容性极强 安装带 C++ 扩展的库(如 pynini)、跨语言依赖
Pip PyPI 仓库 下载源码,Windows 下部分库(如 pynini)需本地编译,易报错 安装纯 Python 库(如 flask、requests),使用习惯与单独装 Python 一致
1
conda install -c conda-forge 依赖名 -y

Conda 运行 Python 项目完整步骤

创建专属环境

Conda 环境独立于项目文件夹,统一由 Conda 管理,创建时可指定 Python 版本,也可使用默认版本。

  • 默认版本(使用 Conda 自带的 Python 版本):
1
conda create -n 环境名 -y  # 环境名自定义,如 moss-tts-nano
  • 指定 Python 版本(重点说明):
1
conda create -n 环境名 python=3.12 -y  # 例:指定 Python 3.12

说明:若 Conda 默认 Python 版本为 3.13,指定 3.12 会 自动下载 Python 3.12 版本,与默认 3.13 共存,互不干扰;每个环境的 Python 都是独立的,不会覆盖其他环境或默认版本。

激活专属环境

激活前需要初始化(也许只需一次,不过报错会有提示的),重点是初始化之后需要重新打开终端激活环境,相当于是添加环境变量,先用下面的命令初始化:

1
conda init

然后打开一个新终端,使用下述命令激活环境:

1
conda activate 环境名  # 例:conda activate moss-tts-nano

如果还是提示需要init,就使用管理员权限运行初始化命令。

激活后,所有 conda installpip install 安装的依赖,都会存入该专属环境,不影响其他环境。

我们可以使用这个命令看到当前激活的环境(查看所有环境和状态):

1
conda info --envs

激活成功后,终端前缀会显示 (环境名),此时执行 python --version,显示的是该环境的 Python 版本。

环境相关操作(退出、查看、删除)

  • 退出专属环境:
1
conda deactivate

退出后,终端前缀的 (环境名) 消失,恢复使用 Conda 默认环境。

  • 查看所有 Conda 环境(含环境路径):
1
conda info --envs
  • 删除专属环境(删除后环境内所有依赖一并删除,不可恢复):
1
conda remove -n 环境名 --all -y

环境存放位置

所有 Conda 环境(包括默认环境 base、自定义环境),均统一存放在 Conda 安装目录的 envs 文件夹下,默认路径(Scoop 安装的conda位置是根据scoop设置来的,默认在c盘):

1
C:\Users\你的用户名\scoop\apps\miniconda3\current\envs\环境名

每个环境对应一个独立文件夹,内含该环境的 Python 解释器、依赖库(Lib)等,与其他环境完全隔离。

运行 MOSS-TTS-Nano

注:下面的命令不是在一个终端中连续执行的,只是说明,切忌直接复制粘贴。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
git clone https://github.com/OpenMOSS/MOSS-TTS-Nano.git
cd MOSS-TTS-Nano

# 部署运行,来自项目文档
conda create -n moss-tts-nano python=3.12 -y
conda init # 管理员权限运行init
conda activate moss-tts-nano # 新开终端中执行,激活环境

# 安装编译型依赖(如 pynini,就是为了这个玩意儿才用的conda)
conda install -c conda-forge pynini=2.1.6.post1 -y
pip install git+https://github.com/WhizZest/WeTextProcessing.git
# 安装其他项目依赖
cd MOSS-TTS-Nano
pip install -r requirements.txt
# 运行项目
python app.py