Ubuntu编译安装python,并更换默认python

本文详细介绍了如何在Ubuntu系统上从源码编译安装Python 3.9,并配置使其成为默认版本,包括安装依赖、编译参数、错误排查及ldconfig等步骤。同时,还涉及pip源更换和设置默认Python版本的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Ubuntu编译安装python,并更换默认python

下载

官网下载源码

在这里插入图片描述

安装依赖

sudo apt-get update
sudo apt-get install -y gcc 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 liblzma-dev

解压编译

我下载的是Python-3.9.13.tar.xz,放在~/Downloads文件夹下

cd ~/Downloads
tar -xvf Python-3.9.13.tar.xz
cd Python-3.9.13
sudo ./configure --prefix=/usr/python3 \
					--enable-optimizations \
					--with-lto --enable-shared
sudo make -j 12 && sudo make altinstall

参数配置项,含义如下:

  • –prefix:用于设置编译安装的目录

  • –enable-optimizations:用 PROFILE_TASK 启用以配置文件主导的优化(PGO)

  • –with-lto:在编译过程中启用链接时间优化(LTO)

  • –enable-shared:启用共享 Python 库 libpython 的编译

  • -j 12:设置参与编译的cpu核数

    编译中注意查看一下输出,检查可能存在的错误

验证编译是否正常

cd /usr/python3/bin
./pip3.9
./python3.9

可能出现以下错误
在这里插入图片描述
报错原因:
编译安装完成后,没有将python/lib下的文件放入默认库/usr/lib或/lib中,导致初始化时无法加载库文件。
解决:
加库的配置信息,将python/lib的绝对路径(一般为:’/usr/python3/lib’),添加至conf文件中。
打开/etc/ld.so.conf.d目录下,python3.conf文件:

 vim /etc/ld.so.conf.dpython3.conf

进入vim,将/usr/python3/lib作为一行插入,保存退出。
运行ldconfig命令:

ldconfig

将新装的python放到/usr/bin下

ln -s /usr/python3.9/bin/python3.9 /usr/bin/python
ln -s /usr/python3.9/bin/pip3.9 /usr/bin/pip

如果没有pip,可以自行装一个,建议换完默认版本再行安装,以免出错

sudo apt install python-pip

验证安装

python --version
pip --version

pip换源

临时使用

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package

设为默认

升级 pip 到最新的版本 (>=10.0.0) 后进行配置:

python -m pip install --upgrade pip
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

如果您到 pip 默认源的网络连接较差,临时使用本镜像站来升级 pip:

python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple --upgrade pip

切换默认python

  1. 列出所有可替代python版本

    update-alternatives --list python 
    

    一般啥都没有,那么进入下一步

  2. 添加可替代版本

    # 将刚刚编译安装的python放进去
    update-alternatives --install /usr/bin/python python /usr/bin/python3 1 
    # 后边两个是系统自带的看自己需求加不加
    update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2
    update-alternatives --install /usr/bin/python python /usr/bin/python3.6 3  
    

    后边的1,2,3.....是代表序号,后边有用

  3. 在此列出可用的python版本

    update-alternatives --list python 
    
  4. 使用以下命令就可以在列出的python版本中任意切换了

    update-alternatives --config python 
    

在这里插入图片描述

设置完之后可以打开终端看看效果

### 编译安装特定版本的 Python #### 准备工作 为了确保编译过程顺利,在开始之前需要更新系统的软件包列表以及安装必要的依赖项。对于 Ubuntu 系统而言,可以执行如下命令: ```bash sudo apt update && sudo apt upgrade -y ``` 接着安装构建工具和其他必需库文件: ```bash sudo apt-get install build-essential checkinstall \ libreadline-gplv2-dev libncursesw5-dev libssl-dev \ libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev \ zlib1g-dev openssl libffi-dev liblzma-dev ``` 以上操作能够提供给后续编译所需的全部支持[^2]。 #### 下载指定版本的 Python 源码 前往官方发布的页面获取目标版本的 tarball 文件, 或者通过 wget 命令直接下载到本地机器上。这里以 Python 3.10为例说明具体做法: ```bash cd /usr/src sudo wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz ``` 解压刚刚下载下来的压缩包,进入对应的目录内继续下一步骤的操作: ```bash sudo tar xzf Python-3.10.0.tgz cd Python-3.10.0 ``` #### 配置与编译 运行配置脚本来设定编译参数,这一步会读取当前环境变量设置路径等信息用于指导之后的实际编译流程;完成后即可调用 make 进行正式编译了。 ```bash ./configure --enable-optimizations make altinstall ``` 注意:使用 `altinstall` 而不是普通的 `install` 是为了避免覆盖系统自带或其他已存在的相同名称解释器实例。 #### 完成验证 最后可以通过下面这条简单的指令来确认新安装好的 Python 是否可用及其确切位置: ```bash python3.10 --version which python3.10 ``` 如果一切正常的话应该能看到预期的结果显示出来。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值