linux服务器一般会内置python,很多服务如yum会依赖python,但是这个python版本一般很低,如2.7,是无法满足我们的部署需求的,但是这个默认版本不能随便覆盖,因为很多内置服务都是依赖这个版本的,这时可以使用pyenv来安装python
它的功能如下:
功能 | 说明 |
---|---|
多版本管理 | 可以安装和使用多个 Python 版本(如 3.8、3.9、3.10、3.11 等) |
按项目切换版本 | 不同项目可以使用不同的 Python 版本,互不影响 |
用户级安装 | 安装在用户目录下,不需要管理员权限 |
支持自动下载源码编译安装 | 自动从官方下载源码并编译安装指定的 Python 版本 |
轻量无侵入 | 不会修改系统 Python,只影响当前用户的 shell 环境 |
安装pyenv
-
安装依赖
# Ubuntu/Debian sudo apt-get install -y make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \ libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev git # CentOS/RHEL sudo yum install -y gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite \ sqlite-devel openssl-devel tk-devel libffi-devel git
-
安装 pyenv
curl https://pyenv.run | bash
-
配置环境变量
将以下内容添加到~/.bashrc
或~/.zshrc
:export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
重启终端或执行
source ~/.bashrc
。 -
安装 Python 3.8
pyenv install 3.8.10 # 安装指定版本 pyenv global 3.8.10 # 设置为全局版本 python --version # 验证版本
安装过程提速
我们在安装时经常会出现卡住不动的情况,因为这个包在国外下载很慢,这时我们可以复制下这个地址用迅雷下载就很快,下载完的包放入~/.pyenv/cache/ 中,再重新执行下pyenv install 3.8.10
虽然你现在默认版本是3.8,但不会影响系统级的服务(如 Apache、Nginx、MySQL、systemd 服务等),因为这些服务使用的是系统的默认 Python(通常在 /usr/bin/python
),而 pyenv
只是修改了当前用户的 shell 环境下的 Python 路径。