本地部署GraspDetSeg_CNN库遇setuptools相关错误求助
解决GraspDetSeg_CNN部署中的
ValueError: bad marshal data及弃用警告问题 1. 清理损坏的字节码缓存
ValueError: bad marshal data (unknown type code)大多是缓存的编译字节码(.pyc文件)损坏导致,先彻底清理相关缓存:
- 删除仓库目录下的所有
__pycache__文件夹:find . -type d -name "__pycache__" -exec rm -rf {} + - 清理Anaconda环境缓存:
conda clean --all - 清空pip缓存:
pip cache purge
2. 降级setuptools到兼容版本
你使用的Python 3.7、torch 1.1.0属于较旧版本,最新版setuptools会触发大量弃用警告,甚至引发兼容性冲突,建议降级到适配版本:
pip install setuptools==45.0.0
该版本对Python 3.7及旧版setup.py的兼容性更好,能有效减少弃用警告。
3. 用pip安装并禁用构建隔离
跳过PEP517的隔离构建逻辑,直接使用当前环境依赖完成安装:
cd grasp_det_seg_cnn pip install . --no-build-isolation
若仍有问题,强制重新安装依赖:
pip install . --no-build-isolation --force-reinstall
4. 验证CUDA与torch的兼容性
Ubuntu 22.04的系统库可能和旧版CUDA存在适配问题,先确认torch是否正确关联CUDA:
import torch print(torch.cuda.is_available())
若输出False,需重新安装适配CUDA 10.1的torch版本(torch 1.1.0官方预编译包适配CUDA 10.0,CUDA 10.1可兼容):
pip install torch==1.1.0 torchvision==0.3.0 -f https://download.pytorch.org/whl/cu100/torch_stable.html
若编译仍出错,可考虑降级CUDA到10.0,或从源码编译torch。
5. 手动编译扩展模块并添加路径
如果上述方法均失效,直接跳过安装流程,手动编译扩展模块后添加Python路径:
- 编译扩展模块:
python setup.py build_ext --inplace - 将仓库目录添加到Python路径:
替换export PYTHONPATH=$PYTHONPATH:/path/to/grasp_det_seg_cnn/path/to/grasp_det_seg_cnn为你的实际仓库路径,之后即可直接使用仓库代码。
内容的提问来源于stack exchange,提问作者Obaidullah Zaland
相关产品推荐
相关产品推荐

