Ubuntu终端下如何降级Python3.8.10至3.5.6/2.7以适配旧版TensorFlow?
解决Python降级与FSA-Net运行问题
用qbrew安装目标Python版本
由于你只能使用qbrew,先安装所需的旧版Python:
- 安装Python 3.5.6:
qbrew install python@3.5.6 - 安装Python 2.7:
qbrew install python@2.7
安装完成后,用以下命令获取安装路径(后续步骤会用到):
# 查看Python 3.5.6的安装路径 qbrew --prefix python@3.5.6 # 查看Python 2.7的安装路径 qbrew --prefix python@2.7
创建虚拟环境(推荐,避免破坏系统Python)
针对Python 3.5.6
- 用Python自带的venv创建虚拟环境:
# 替换成上面查到的Python 3.5.6路径,例如/usr/local/opt/python@3.5.6/bin/python3.5 <PATH_TO_PYTHON3.5> -m venv fsanet_env
- 激活虚拟环境:
source fsanet_env/bin/activate
针对Python 2.7
- 先安装virtualenv(Python 2.7没有自带venv):
# 替换成上面查到的Python 2.7路径 <PATH_TO_PYTHON2.7> -m pip install virtualenv
- 创建虚拟环境:
<PATH_TO_PYTHON2.7> -m virtualenv fsanet_env
- 激活虚拟环境:
source fsanet_env/bin/activate
安装依赖并运行FSA-Net
- 进入FSA-Net目录(未克隆的话先执行克隆命令):
git clone https://github.com/shamangary/FSA-Net.git cd FSA-Net
- 在激活的虚拟环境中安装指定版本的TensorFlow和Keras:
pip install tensorflow==1.10.0 keras==2.2.4
- 安装脚本依赖的其他常用库:
pip install numpy opencv-python pillow
- 修正演示脚本的Python调用:
打开run_demo_FSANET.sh,将脚本开头的python/python3替换为虚拟环境中的Python路径,示例:
#!/bin/bash PYTHON=./fsanet_env/bin/python $PYTHON demo_FSANET.py --args ... # 保留脚本原有参数
或者确保虚拟环境处于激活状态(终端前缀会显示(fsanet_env)),直接运行脚本:
sh run_demo_FSANET.sh
关键提醒
- 绝对不要替换系统默认Python版本,会导致Ubuntu自带工具(如apt)崩溃,虚拟环境是最安全的方案。
- 如果qbrew安装Python时失败,先安装Ubuntu编译依赖:
sudo apt-get install build-essential libssl-dev libffi-dev python-dev - 运行脚本报错时,先检查虚拟环境是否激活,再确认所有依赖已安装完成。
内容的提问来源于stack exchange,提问作者Kenan Morani
相关产品推荐
相关产品推荐

