与前几课不同,第6课没有按第1步、第2步等来说明,而是介绍Python环境的概念、构建、在接下来不同阶段的策略、pyproject.toml 的基础、锁定文件、及常见错误。- 在 AI/ML 领域,经常会遇到“依赖地域”--因某工具不同的版本,会绑定不同的功能。如,
- PyTorch, Jax, and TensorFlow 它们会带有各自的 CUDA的绑定
- 全局的 pip install 安装会覆盖以前的内容
- CUDA11.8的构建在12.x 版的驱动里无法运行,反之亦然。
解决以上问题的办法,是让每个项目有其自已单独的运行环境和功能包。有虚拟环境,刚每个项目即使使用不同的版本,如 A 使用torch2.4.0,B 使用 torch2.1.2,它们可以在自己的环境中正常运行;反之,如没有虚拟环境,则仅有一个torch版本的项目可以运行。选项1:uv venv(推荐)
uv(在第一课中已经安装过)是目前最快的 Python package 管理工具。它可以处理虚拟环境,python 版本,以及依赖问题。
如果装不上 uv,可以激活python 内建的 venv。python3 -m venv .venv
source .venv/bin/activate # Linux/macOS
- 需要特殊的 CUDA 工具包版,却不想整个系统都装时
- 当在一个共享的 cluster 上,却无法安装系统包时(不太懂,后续再跟进)
阶段11会使用 API SDKs,不需要 torch。pyproject.toml 会替代 setup.py,setup.cfg, 以及 requirements.txt。一个锁文件将每个依赖指定到确切的版本上,从而保证从其安装时所用的包一定相同。
本课中自带了一个.sh 文件,可以创建本系列课程所需要的环境这一课,介绍了 Python 环境的相关内容。感觉操作一次也没怎么理解,应该是缺少较多的相关知识。课程有一个测试,可以评估学习者的相关能力,感兴趣的可以先去做一下这个测试。