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
-
添加 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 中
-
更新包列表并安装 Python 3.10:
添加 PPA 后,确保更新包列表以包含新添加的资源$ sudo apt update $ sudo apt install python3.10 python3.10-venv python3.10-dev
-
验证安装:
最后,检查是否正确安装了 Python 3.10$ python3.10 --version
1.2 方法2:源码编译安装 Python 3.10
如果通过 PPA 仍然无法安装,可以考虑手动下载Python 3.10源码并编译安装
-
安装依赖项:
编译 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
-
下载 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
-
编译和安装:
编译并安装 Python$ cd Python-3.10.0 $ sudo ./configure --enable-optimizations $ sudo make altinstall
注意:这里使用
make altinstall
而不是make install
,以避免覆盖系统默认的python3
命令。 -
验证安装:
最后,检查是否正确安装了 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>
可以自定义,但是要注意:
-
<link>
名字是你要使用的命令名,比如使用python或python3,则需建立/usr/bin/python
或/usr/bin/python3
的快捷方式 -
<name>
对应 /etc/alternatives/<name>
,与<link>是绑定关系,一个<link>
只能绑定一个<name>
所以不能将不同的<name>
绑定到同一个<link>
上 -
可以对相同的
<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
。
-
下载
get-pip.py
:$ curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
-
运行脚本安装
pip
:
使用 Python 3.10 来执行get-pip.py
$ python3.10 get-pip.py
-
验证安装:
确认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博客