You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OnePose_Plus_Plus项目conda环境构建失败及排障求助

解决OnePose_Plus_Plus环境构建中的依赖冲突问题

问题背景

用conda 4.8.2构建OnePose_Plus_Plus项目环境时,执行environment.yaml触发包冲突,最终抛出TypeError: sequence item 0: expected str instance, Channel found错误。尝试用micromamba、mamba解决时,前者卡在元数据下载,后者提示找不到依赖。单独安装包时遇到cudatoolkit=10.1缺失、h5py=3.1.0与openssl冲突、requirements.txt中多包与Python3.7不兼容等问题。目前已将cudatoolkit改为10.2、移除h5py版本限制,但requirements.txt的问题仍未解决。

原始环境配置文件

environment.yml

name: oneposeplus
channels:
  - pytorch
  - conda-forge
  - defaults
dependencies:
  - python=3.7
  - pytorch=1.8.0
  - torchvision=0.9.1
  - cudatoolkit=10.1
  - ipython
  - tqdm
  - matplotlib
  - pylint
  - conda-forge::jupyterlab
  - conda-forge::h5py=3.1.0
  - conda-forge::loguru=0.5.3
  - conda-forge::scipy
  - conda-forge::numba
  - conda-forge::ipdb
  - conda-forge::albumentations=0.5.1
  - pip
  - pip:
    - -r requirements.txt

requirements.txt

pytorch-lightning==1.5.10
ray==1.13.0
aiohttp==3.7
aioredis==1.3.1
pydegensac==0.1.2
opencv_python==4.4.0.46
yacs>=0.1.8
pytorch_memlab
joblib
pytorch3d
open3d
einops==0.3.0
kornia==0.4.1
autopep8
pickle5==0.0.11
timm>=0.3.2
hydra-core
omegaconf
pycocotools
wandb
rich
transforms3d
natsort
plyfile
pycolmap==0.3.0

分步解决方案

1. 修复conda版本兼容性bug

conda 4.8.2对conda-forge::这种通道前缀的解析存在bug,导致TypeError。先升级conda到稳定版本:

conda update -n base conda

升级后用原生conda重新创建环境,若仍有冲突,改用mamba(确保已安装mamba):

mamba env create -f environment.yaml

2. 保留已做的核心依赖调整

  • 维持cudatoolkit=10.2:10.1的conda源已逐步停止维护,10.2与pytorch1.8.0兼容性良好。
  • 保留h5py无版本限制:conda会自动匹配与当前环境兼容的版本,避免和openssl冲突。

3. 调整requirements.txt适配Python3.7

针对Python3.7的兼容性,逐个修改包版本:

  • ray:改为ray[default]==1.13.0,确保安装完整依赖且兼容Python3.7。
  • aiohttp:指定为aiohttp==3.7.4.post0,这是3.7分支最后兼容Python3.7的版本。
  • pytorch3d:指定pytorch3d==0.6.2,适配pytorch1.8.0和Python3.7。
  • open3d:指定open3d==0.15.2,这是支持Python3.7的稳定版本。
  • rich:指定rich==10.16.2,避免过高版本不兼容Python3.7。
  • hydra-core:指定hydra-core==1.1.2,这是支持Python3.7的最高版本。
  • pickle5:Python3.7可原生支持pickle5,建议直接移除该行。
  • pycolmap==0.3.0:该版本无Python3.7预编译包,若项目允许,升级到pycolmap>=0.4.0,或从源码编译。

修改后的requirements.txt示例:

pytorch-lightning==1.5.10
ray[default]==1.13.0
aiohttp==3.7.4.post0
aioredis==1.3.1
pydegensac==0.1.2
opencv_python==4.4.0.46
yacs>=0.1.8
pytorch_memlab
joblib
pytorch3d==0.6.2
open3d==0.15.2
einops==0.3.0
kornia==0.4.1
autopep8
timm>=0.3.2
hydra-core==1.1.2
omegaconf==2.1.2
pycocotools
wandb
rich==10.16.2
transforms3d
natsort
plyfile
# 若需pycolmap,建议升级版本或从源码编译
# pycolmap>=0.4.0

4. 分阶段安装避免冲突

先安装conda管理的依赖,再单独安装pip依赖:

  1. 创建环境时跳过pip部分:
    conda env create -f environment.yaml --no-pip
    
  2. 激活环境后安装pip依赖:
    conda activate oneposeplus
    pip install -r requirements.txt
    

5. 解决mamba/micromamba的网络与依赖查找问题

  • 调整channels顺序,将conda-forge设为最高优先级,修改environment.yaml的channels:
    channels:
      - conda-forge
      - pytorch
      - defaults
    
  • 添加国内镜像源加速下载(可选):
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
    conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
    conda config --set show_channel_urls yes
    

内容的提问来源于stack exchange,提问作者brian2lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 09:15:04