搭建Celadon编译机时无法定位python-networkx等包的原因是什么?
问题原因
- 你当前使用的Ubuntu版本为20.04 LTS及以上版本,该版本起官方源已经全面移除了Python 2.x相关的软件包。你报错的
python-networkx、python-pystache均为Python 2对应的包命名格式,Python 3对应的包名为python3-networkx、python3-pystache,因此即便开启universe源也无法定位到Python 2版本的包。 - 少数情况是本地软件源缓存未更新,也会导致无法定位到已存在的包。
解决方案
方案1(最稳妥,无兼容问题)
Celadon官方推荐的编译环境为Ubuntu 18.04 LTS,你可以直接切换到18.04系统,或者通过Docker等容器工具运行18.04镜像作为编译环境,可完全避免后续依赖版本兼容问题。
方案2(当前系统手动安装Python2依赖)
如果你不想更换现有系统,可以手动通过pip安装对应Python2版本的依赖:
- 先安装Python2和pip2:
sudo apt install python2 curl curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py sudo python2 get-pip.py
- 安装目标依赖:
pip2 install networkx pystache
方案3(尝试适配Python3)
你可以先安装Python3版本的对应依赖:sudo apt install python3-networkx python3-pystache
使用该方案需要确认Celadon的构建脚本是否支持Python3,若构建时仍提示找不到依赖,需要修改构建脚本中对应的Python调用指令,将python改为python3即可,该方案存在后续编译报错的兼容风险。
前置检查
操作前可以先执行sudo apt update更新本地软件源缓存,排除缓存未更新导致的包找不到问题。
内容的提问来源于stack exchange,提问作者Aldin Yusmar
相关产品推荐
相关产品推荐

