问题背景
Conda、Docker 等技术的确非常强大,它们可以实现“一次开发,到处部署”,在操作系统层面保证兼容性。然而,当遇到 硬件不兼容 时,这类工具就无能为力,需要手动干预。
例如,我想运行别人提供的深度学习项目,并使用 Conda 管理环境。原项目的 env.yaml 中指定了:
1 | dependencies: |
然而我的显卡是 RTX 5070 Ti(50 系列),直接conda create -f 后运行项目会报错:
1 | NVIDIA GeForce RTX 5070 Ti with CUDA capability sm_120 is not compatible with the current PyTorch installation. |
这种情况下,只有两个选择:要么换机器,要么重新构建依赖环境。
更麻烦的是,支持 50 系显卡的 PyTorch 版本至少要求 Python 3.10,也就是说小改 env.yaml 根本无法解决问题(其他库版本过老又没法支持 Python 3.10了),只能做较大幅度的调整。
全升级方案
可以先试一试不管库的版本,直接升级到 Python3.10.
依然先构建环境
1 | conda create -f env.yaml |
然后导出pip依赖
1 | pip freeze > requirements.txt |
清理所有固定版本和本地/远程来源,只保留包名,使用python脚本
1 | #!/usr/bin/env python3 |
然后另建虚拟环境pip install -r requirements.txt即可。
注意某些gpu版本的库应该从requirements.txt中删去,然后根据官网教程自行安装,可参考
这个方法简单粗暴,然而如果项目中有些库的用法过时了,这个方法后续也很麻烦,要么手动降低报错库的版本,要么改代码。
吐槽
配了块 5070Ti 显卡,虽然打游戏很爽,但是配 AI 环境真是处处碰壁。2025 年 10 月之前,PyTorch 的 stable 版本甚至完全不支持 50 系显卡,只能用 nightly 版本——那种每晚自动构建的“滚动快照”。记得我 10 月 3 日安装的虚拟环境还能用,结果 10 月 4 日玩另一个项目装完虚拟环境用就直接报错。现在11月终于有stable版本了,但是一些老项目还是不能直接跑,真是牢完了。