如何在树莓派Raspbian 11中安装Python 3.7并设为默认版本
在Raspbian 11(bullseye)上安装Python 3.7并保留现有版本
Raspbian 11的官方软件源已移除Python 3.7包,因此直接通过apt install无法安装。以下两种方法可实现目标,且不会覆盖系统自带的Python 3.9.2:
方法一:从源码编译安装
适合需要自定义安装路径或无网络依赖的场景:
安装编译依赖:
sudo apt update && sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev下载Python 3.7最新稳定版源码(以3.7.17为例):
wget https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tgz解压并进入源码目录:
tar -xf Python-3.7.17.tgz cd Python-3.7.17配置编译参数(指定独立安装路径,避免覆盖系统Python):
./configure --enable-optimizations --prefix=/usr/local/python3.7--enable-optimizations会开启性能优化,编译时间稍长;--prefix指定安装位置,防止干扰系统默认Python。编译并安装:
make -j4 # -j后接树莓派核心数,比如4核写-j4 sudo make altinstall使用
altinstall而非install,避免替换系统的python3软链接。验证安装:
/usr/local/python3.7/bin/python3.7 --version /usr/local/python3.7/bin/pip3.7 --version可选:创建全局软链接方便调用:
sudo ln -s /usr/local/python3.7/bin/python3.7 /usr/local/bin/python3.7 sudo ln -s /usr/local/python3.7/bin/pip3.7 /usr/local/bin/pip3.7之后直接输入
python3.7即可调用该版本。
方法二:使用pyenv管理多版本Python
适合频繁切换Python版本的场景,管理更灵活:
安装pyenv依赖:
sudo apt update && sudo apt install git curl build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev llvm libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev克隆pyenv到本地目录:
git clone https://github.com/pyenv/pyenv.git ~/.pyenv配置环境变量(针对bash用户,zsh用户替换为
~/.zshrc):
打开配置文件:nano ~/.bashrc添加以下内容到文件末尾:
export PYENV_ROOT="$HOME/.pyenv" command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"保存退出(按
Ctrl+O→回车→Ctrl+X),刷新环境变量:source ~/.bashrc安装Python 3.7.17:
pyenv install 3.7.17启用Python 3.7:
- 仅当前目录生效:
pyenv local 3.7.17 - 全局生效(不推荐,可能影响系统工具):
pyenv global 3.7.17 - 当前会话临时生效:
pyenv shell 3.7.17
- 仅当前目录生效:
验证:
python --version # 显示Python 3.7.17 python3 --version # 仍为系统自带的3.9.2
内容的提问来源于stack exchange,提问作者LearningC
相关产品推荐
相关产品推荐

