pin_drop当前位置:知识文库 ❯ 图文
Python 安装 - Linux
Linux系统通常预装了Python,但版本可能较旧。本教程将介绍在Linux系统上安装Python的两种方式:使用包管理器安装(简单快捷)和源码编译安装(灵活可控)。同时还会讲解如何设置默认Python版本以及多版本管理的方法。
使用包管理器安装
不同的Linux发行版使用不同的包管理器,下面分别介绍主流发行版的安装方法。
Ubuntu / Debian
代码示例
sudo apt update
sudo apt install python3
sudo apt install python3-pip python3-venv安装开发工具(编译C扩展时需要):
代码示例
sudo apt install python3-dev
sudo apt install build-essentialCentOS / RHEL / Fedora
CentOS / RHEL:
代码示例
sudo yum install python3
sudo yum install python3-pipFedora:
代码示例
sudo dnf install python3
sudo dnf install python3-pipArch Linux
代码示例
sudo pacman -S python
sudo pacman -S python-pipopenSUSE
代码示例
sudo zypper install python3
sudo zypper install python3-pip安装指定版本
某些发行版的仓库中可能包含多个Python版本:
代码示例
sudo apt install python3.11
sudo apt install python3.12提示:如果仓库中没有所需版本,可以考虑使用Deadsnakes PPA(Ubuntu)或从源码编译安装。
Ubuntu添加Deadsnakes PPA
代码示例
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12源码编译安装
当包管理器中没有所需版本,或者需要自定义编译选项时,可以从源码编译安装。
1. 安装编译依赖
Ubuntu / Debian:
代码示例
sudo apt update
sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev \
libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev \
wget libbz2-dev liblzma-devCentOS / RHEL:
代码示例
sudo yum groupinstall -y "Development Tools"
sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel \
xz-devel sqlite-devel readline-devel tk-devel gdbm-devel2. 下载源码
代码示例
cd /tmp
wget https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz提示:请到 Python官网 查看最新版本号并替换。
3. 解压源码
代码示例
tar -xf Python-3.12.3.tgz
cd Python-3.12.34. 配置编译选项
代码示例
./configure --enable-optimizations --with-ensurepip=install5. 编译并安装
代码示例
make -j$(nproc)
sudo make altinstall⚠️ 重要:使用
altinstall而不是install!install会覆盖系统默认的Python版本,可能导致系统工具异常。altinstall会安装为python3.12,不会影响已有的python3命令。
6. 验证编译安装
代码示例
python3.12 --version验证安装
检查Python版本
代码示例
python3 --version预期输出:
代码示例
Python 3.12.x检查pip版本
代码示例
python3 -m pip --version提示:在Linux上推荐使用
python3 -m pip代替pip3,可以确保pip与对应的Python版本匹配。
验证代码示例
代码示例
import sys
import platform
print(f"Python版本: {sys.version}")
print(f"Python路径: {sys.executable}")
print(f"操作系统: {platform.system()} {platform.release()}")
print(f"Linux发行版: {platform.freedesktop_os_release().get('NAME', 'Unknown')}")
print(f"架构: {platform.machine()}")运行:
代码示例
python3 check_python.py设置默认Python版本
当系统中安装了多个Python版本时,可以使用 update-alternatives 工具来管理默认版本。
添加Python版本到alternatives
代码示例
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.12 2末尾的数字为优先级,数字越大优先级越高。
切换默认版本
代码示例
sudo update-alternatives --config python3系统会显示可选的Python版本列表,输入对应编号即可切换。
设置python命令
如果希望 python 命令指向 python3:
代码示例
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1或者创建软链接:
代码示例
sudo ln -s /usr/bin/python3 /usr/bin/python⚠️ 注意:修改系统默认Python版本可能影响依赖Python的系统工具,请谨慎操作。
注意事项
-
不要删除系统自带Python:Linux系统的许多工具(如yum、apt)依赖系统自带的Python,删除可能导致系统无法正常运行
-
使用altinstall:从源码编译安装时,务必使用
make altinstall,避免覆盖系统Python -
虚拟环境:建议使用虚拟环境来管理项目依赖,避免污染系统Python环境
-
权限管理:安装Python包时优先使用
--user选项或虚拟环境,避免使用sudo pip install -
编译时间:启用
--enable-optimizations后编译时间较长(可能需要10-30分钟),这是正常现象 -
依赖缺失:如果编译时报错,通常是缺少开发库,根据错误信息安装对应的
-dev或-devel包
小结
本教程介绍了在Linux系统上安装Python的两种方式:
对于大多数用户,推荐使用包管理器安装。如果需要最新版本或特定编译选项,再考虑源码编译安装。安装完成后,使用 update-alternatives 可以方便地管理多个Python版本。
练习题
练习1
在你的Linux系统上安装Python 3,然后运行以下命令并记录输出:
代码示例
python3 --version
python3 -m pip --version
which python3
python3 -c "import sys; print(sys.path)"练习2
尝试从源码编译安装一个Python版本,并使用 update-alternatives 配置多版本切换。完成后执行以下操作:
1. 列出系统中所有已安装的Python版本
2. 切换默认Python版本
3. 验证切换是否成功
提示:使用 update-alternatives --display python3 查看已注册的Python版本。
常见问题
Linux系统自带了Python,还需要重新安装吗?
Linux系统预装的Python版本可能较旧,无法满足最新项目需求。建议通过包管理器安装最新的Python 3版本,以获得新功能和安全更新。
源码编译安装时为什么要用altinstall而不是install?
make install会覆盖系统默认的python3命令,可能导致依赖系统Python的工具(如yum、apt)无法正常运行。make altinstall会将Python安装为python3.x格式,不会覆盖系统默认版本。
Ubuntu如何安装最新版本的Python?
可以通过添加Deadsnakes PPA仓库来获取最新的Python版本:sudo add-apt-repository ppa:deadsnakes/ppa,然后sudo apt install python3.12即可安装。
Linux上推荐使用pip还是python3 -m pip?
推荐使用python3 -m pip。这种方式可以确保pip与对应的Python版本完全匹配,避免在多Python环境下的版本混淆问题。
如何管理多个Python项目的依赖?
建议使用虚拟环境(venv)来管理每个项目的依赖。每个项目创建独立的虚拟环境,避免包之间的版本冲突,也不会污染系统Python环境。
小贴士
-
启用
--enable-optimizations进行PGO优化后,Python运行速度可提升约10-20%,但编译时间会显著增加(10-30分钟),建议在生产环境中使用。 -
对于需要频繁切换Python版本的场景,可以考虑使用pyenv或conda等专业版本管理工具,比手动配置update-alternatives更加灵活。
-
在服务器环境中,建议使用Docker容器来隔离Python运行环境,可以避免系统级别的依赖冲突,也便于部署和迁移。
本文涉及AI创作
内容由AI创作,请仔细甄别