1. requirements.txt

  • 创建我的项目: 在虚拟环境中安装完所有包后,运行 pip freeze > requirements.txt
  • 使用他人项目: 创建并激活虚拟环境后,运行 pip install -r requirements.txt

2. environment.yaml (conda 环境)

  • 创建我的项目: 在配置好的 conda 环境中,运行 conda env export > environment.yaml
  • 使用他人项目: 直接运行 conda env create -f environment.yaml 来一步到位创建并安装所有依赖,然后激活虚拟环境就可以使用。

3. pip-tools

  • 创建我的项目: 手动编写一个只含顶级依赖的 requirements.in,然后运行 pip-compile 生成 requirements.txt
  • 使用他人项目: 运行 pip-sync (推荐) 或 pip install -r requirements.txt 来同步环境。

4. setup.py (传统打包)

  • 创建我的项目: 手动编写 setup.py 文件,定义包的名称、版本、依赖 (install_requires) 等。
  • 使用他人项目: 运行 pip install -e . (开发模式) 或 pip install . (用户模式) 来安装。

5. pyproject.toml (现代打包)

  • 创建我的项目: 手动编写 pyproject.toml,在 [project] 表格中定义项目元数据和依赖。
  • 使用他人项目: 与 setup.py 完全相同,运行 pip install -e .pip install .

6. conda-build (Conda 打包)

  • 创建我的项目: 手动编写 meta.yaml 配方文件,定义完整的打包规则和跨语言依赖。
  • 使用他人项目: 从本地文件安装 (conda install <包路径>) 或从 Anaconda 渠道安装 (conda install -c <渠道名> <包名>)。

对比总结

工具 核心用途 (一句话总结)
requirements.txt pip 环境提供一份精确的“包列表”。
environment.yaml conda 环境提供一份包含所有依赖(含非Python库)的“完整快照”。
pip-tools 更专业地管理 pip 依赖,将“我想要的”和“实际安装的”分开。
setup.py (传统方式) 将你的代码打包成一个可被 pip 安装和分发的 Python
pyproject.toml (现代标准) 统一管理项目配置、依赖和打包规则的唯一入口
conda-build 构建跨平台、跨语言的重量级软件包,解决复杂的二进制依赖问题。

更多推荐