Foundationpose环境配置【非conda--纯UV】(linux22.04+python3.10)

发布时间:2026/10/9 1:33:19
Foundationpose环境配置【非conda--纯UV】(linux22.04+python3.10)
具体流程参考FoundationPose 复现引言公司不让用conda 使用替换方案 UV或者 pip。UV和所有 Python 虚拟环境只管 Python 包不管系统的 CUDA 编译器nvcc。所以才会出现虚拟环境里PyTorch 是 cu128编译时绑定了 CUDA 12.8系统里nvcc 是 11.8真・本地编译器编译 flash-attn 这种 CUDA 扩展时会去调用系统 nvcc → 版本 mismatch → 报错下面把这事拆清楚1. UV/venv 隔离的是什么只隔离Python 解释器site-packagespip/uv 装的包包括 PyTorch环境变量里的PATH前缀优先用虚拟环境里的 Python/pip不隔离、不管的系统的nvccCUDA Toolkit 编译器系统的libcuda.so/libcudart.so驱动和系统 CUDA 库LD_LIBRARY_PATH等系统级动态库路径所以uv run python -c import torch; print(torch.version.cuda) # 12.8来自 PyTorch 包 nvcc -V # 11.8来自系统这俩本来就可以不一样平时用 PyTorch 跑模型没问题但编译 CUDA 扩展如 flash-attn、cc_torch就会炸。2. 为什么编译 flash-attn 必须要 “系统 nvcc” 和 “PyTorch CUDA” 一致flash-attn 是CUDA 扩展安装时会调用系统nvcc编译.cu源码链接到 PyTorch 对应的 CUDA runtime 库12.8要求编译器版本nvcc ≈ 链接库版本torch.cuda主版本必须一致12.x vs 11.x 不行你的情况编译器nvcc 11.8链接库PyTorch cu128→主版本 11 vs 12 不兼容 → 直接报错准备注意 编译器版本 gcc-10/g-10sudo apt update sudo apt install gcc-10 g-10 ninja-build【nvcc 编译 C/CUDA 代码用的】本机的nvcc 版本要是 CUDA 11.8如果不是则执行命令cd ~/Downloads wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb sudo dpkg -i cuda-repo-ubuntu2204-11-8-local_11.8.0-520.61.05-1_amd64.deb sudo cp /var/cuda-repo-ubuntu2204-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo apt update sudo apt install cuda-toolkit-11-8使用UV安装先进入项目文件夹创建python3.9环境uv venv --python 3.9激活环境source .venv/bin/activate安装依赖包uv pip install -r requirements.txt安装Install Kaolin 和 PyTorch3Duv pip install pytorch3d-0.7.3-cp39-cp39-linux_x86_64.whl uv pip install kaolin-0.15.0-cp39-cp39-linux_x86_64.whl两个包下载地址https://nvidia-kaolin.s3.us-east-2.amazonaws.com/torch-2.0.0_cu118.html https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py39_cu118_pyt200/download.html安装NVDiffRast手动git项目到文件夹下~/Downloads/FoundationPose/external/https://github.com/NVlabs/nvdiffrast.git然后进入external目录执行注意setuptools版本一定要69.0.0其他版本会编译报错参考github issue 中回答cd ~/Downloads/FoundationPose/external/nvdiffrast rm -rf build *.egg-info export CC/usr/bin/gcc-10 export CXX/usr/bin/g-10 export CUDAHOSTCXX/usr/bin/g-10 # 1. 先安装必须的构建依赖 uv pip install wheel setuptools69.0.0 # 2. 再安装 nvdiffrast无构建隔离 本地安装 uv pip install --no-build-isolation .打印日志即成功构建项目 Build and install extensions in repo需要修改项目下build_all_conda.sh 编译指令如下然后 执行指令CMAKE_PREFIX_PATH$(python -c import pybind11; print(pybind11.get_cmake_dir())) bash build_all_conda.sh编译成功打印日志然后直接运行 run_demo.py 。