python之Ubuntu环境安装python3.10

python之Ubuntu环境安装python3.10

Ubuntu环境安装较新的python版本,可能会遇见一些问题,这里以Ubuntu安装python3.10为例

1 Ubuntu 安装python3.10

直接使用ubuntu apt命令安装python3.10:

$ sudo apt update
$ sudo apt install python3.10

如果安装不成功,可能是因为apt软件源中并没有直接提供 python3.10 这个包。要正确安装 Python 3.10,可以尝试以下办法:

1.1 方法1:使用 deadsnakes PPA 安装 Python 3.10

  1. 添加 deadsnakes PPA
    ppa:deadsnakes/ppa 这是一个 Launchpad 提供的个人包仓库(Personal Package Archive,简称 PPA),由 Deadsnakes 团队 维护。它提供了官方 Ubuntu 不再支持或尚未包含的 Python 版本,例如:Python 3.6、3.7、3.8、3.9、3.10、3.11、3.12 等,可以运行以下命令来添加它:

    $ sudo apt update
    $ sudo apt install -y software-properties-common
    $ sudo add-apt-repository ppa:deadsnakes/ppa -y
    

    上述步骤后,ppa源添加到 /etc/apt/sources.list.d/deadsnakes-ubuntu-ppa-jammy.list 中

  2. 更新包列表并安装 Python 3.10
    添加 PPA 后,确保更新包列表以包含新添加的资源

    $ sudo apt update
    $ sudo apt install python3.10 python3.10-venv python3.10-dev
    
  3. 验证安装
    最后,检查是否正确安装了 Python 3.10

    $ python3.10 --version
    

1.2 方法2:源码编译安装 Python 3.10

如果通过 PPA 仍然无法安装,可以考虑手动下载Python 3.10源码并编译安装

  1. 安装依赖项
    编译 Python 需要一些开发工具和库

    $ sudo apt update
    $ sudo apt install -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev curl libbz2-dev
    
  2. 下载 Python 源码
    从 Python 官方网站下载 Python 3.10 的源码

    $ sudo wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
    $ sudo tar xzf Python-3.10.0.tgz
    
  3. 编译和安装
    编译并安装 Python

    $ cd Python-3.10.0
    $ sudo ./configure --enable-optimizations
    $ sudo make altinstall
    

    注意:这里使用 make altinstall 而不是 make install,以避免覆盖系统默认的 python3 命令。

  4. 验证安装
    最后,检查是否正确安装了 Python 3.10

    $ python3.10 --version
    

2 设置默认 Python 版本(可选)

如果希望将 Python 3.10 设置为默认版本,可以使用 update-alternatives 来管理不同版本的 Python,选择 Python 3.10 作为默认版本:

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
# 调整配置
$ sudo update-alternatives --config python3
# 查看当前配置
$ sudo update-alternatives --display python3

# 将python3.10 命名为python
$ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1

2.1 update-alternatives 的工作原理

这里简单介绍一下 update-alternatives 的工作原理,update-alternatives通过双重软链接对软链接进行管理,实现对软件版本的切换。

update-alternatives 命令的参数:

$ sudo update-alternatives <link> <name> <path> <priority>

其参数列表如下:

参数 示例 含义
<link> /usr/bin/python3 系统中使用的符号链接路径(用户执行 python3 时实际调用的路径)
<name> python3 替代项组的名字,对应一个逻辑名称,对应 /etc/alternatives/python3
<path> /usr/local/bin/python3.10 实际要被链接的可执行文件路径
<priority> 1 优先级,数字越大越优先(用于自动选择默认版本)

<link><name>可以自定义,但是要注意:

  1. <link> 名字是你要使用的命令名,比如使用python或python3,则需建立/usr/bin/python/usr/bin/python3的快捷方式

  2. <name>对应 /etc/alternatives/<name>,与<link>是绑定关系,一个 <link> 只能绑定一个 <name>所以不能将不同的<name>绑定到同一个<link>

  3. 可以对相同的<link> +<name> 绑定不同的可执行文件路径<path>,由<priority>来确定哪个可执行文件生效

举例:

(假设Ubuntu系统中安装了python3.10与python3.11):

$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
$ ls -l /usr/bin/python3
/usr/bin/python3 -> /etc/alternatives/python3
$ ls -l /etc/alternatives/python3
/etc/alternatives/python3 -> /usr/bin/python3.10

# 设置python3.11 优先级比python3.10低,不会改变/etc/alternatives/python3指向位置
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
# 可见:执行python3 时使用的还是python3.10
$ ls -l /etc/alternatives/python3
/etc/alternatives/python3 -> /usr/bin/python3.10


# 设置python3.11 优先级比python3.10高,则会改变/etc/alternatives/python3指向位置
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 3
# 可见:执行python3 时使用的是python3.11
$ ls -l /etc/alternatives/python3
/etc/alternatives/python3 -> /usr/bin/python3.11

不能将不同的<name>绑定到同一个<link>上,否则会报错,也不能将不同的<link>绑定到同一个<name>上,否则将会rename <link>

# 不能将不同的`<name>`绑定到同一个`<link>`上,否则会报错:
$ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
$ sudo update-alternatives --install /usr/bin/python3 python310 /usr/bin/python3.10 2
update-alternatives: error: alternative link /usr/bin/python3 is already managed by python3

# 也不能将不同的`<link>`绑定到同一个`<name>`上,否则将会重命名 <link>:
$ sudo update-alternatives --install /usr/bin/python310 python3 /usr/bin/python3.10 2
update-alternatives: renaming python3 link from /usr/bin/python3 to /usr/bin/python310

update-alternatives 的常用操作:

操作 命令
添加 Python 3.10 到 alternatives sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
查看当前配置 sudo update-alternatives --display python3
切换默认 Python 版本 sudo update-alternatives --config python3
删除某个版本 sudo update-alternatives --remove python3 /usr/bin/python3.10

3 升级对应的pip

安装与 Python 3.10 对应的 pip 版本可以通过几种方法实现。以下是针对不同情况的具体步骤:

3.1 方法1:使用 ensurepip 模块

Python 3.4 及以上版本自带了 ensurepip 模块,可以直接用来安装或升级 pip

python3.10 -m ensurepip --upgrade

这将确保为 Python 3.10 安装最新版本的 pip 或者升级现有的 pip

3.2 方法2:使用 get-pip.py 脚本

如果 ensurepip 不可用或你需要更灵活地控制 pip 的安装,可以使用官方提供的 get-pip.py 脚本来安装 pip

  1. 下载 get-pip.py

    $ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    
  2. 运行脚本安装 pip
    使用 Python 3.10 来执行 get-pip.py

    $ python3.10 get-pip.py
    
  3. 验证安装
    确认 pip 是否正确安装并关联到 Python 3.10

    $ python3.10 -m pip --version
    

3.3 方法3:通过包管理器安装(适用于某些发行版)

在某些 Linux 发行版中,您可以直接通过包管理器安装与特定 Python 版本对应的 pip 包。

$ sudo apt install python3.10-distutils  # 如果缺失 distutils 模块
$ sudo apt install python3.10-venv       # 如果需要创建虚拟环境
$ sudo apt install python3.10-pip        # 直接安装 pip

4 设置默认 pip 版本(可选)

如果您有多个版本的 pip 并希望设置 Python 3.10 的 pip 作为默认版本,可以使用 update-alternatives 来管理。

# 如果系统有多个版本,可以将优先级提高,这里优先级用100
$ sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.10 100

选择 Python 3.10 的 pip 作为默认版本。

验证安装

最后,验证 pip 是否正确安装并关联到 Python 3.10。

$ pip --version
$ python3.10 -m pip --version

注意事项:

  • 避免覆盖系统默认 pip:如果您不想覆盖系统的默认 pip 命令,可以使用 python3.10 -m pip 来调用 Python 3.10 的 pip
  • 使用虚拟环境:对于开发工作,建议使用虚拟环境来隔离项目依赖。创建虚拟环境时,pip 会自动安装在该环境中

通过上述方法之一,您应该能够成功为 Python 3.10 安装对应的 pip 版本。

1 ubuntu系统下多个的python版本,设置默认python和pip_ubuntu设置默认python版本-CSDN博客

posted @ 2025-06-08 15:48  sureZ_ok  阅读(1631)  评论(0)    收藏  举报