Ubuntu/Debian编译安装Python3

Linux系统安装后一般都是自带Python的,但如果我们想自己选择特定的Python版本,那就需要编译安装。我们希望自己安装的Python能够与系统Python隔离开来,且能够任意切换使用的Python,所以除了正常的编译安装外,还需要一点小小的配置。

1. 查看当前系统环境

执行

which python
which python2
which python3

可以看到当前系统Python的安装位置,比如我在Ubuntu20下看到了

/usr/bin/python3

在debian10下看到了

/usr/bin/python
/usr/bin/python2
/usr/bin/python3

了解就好,配置Python版本管理时会用到。

2. 编译安装Python

首先安装编译基本依赖

apt install build-essential

接着去Python官网下载你所想要安装的Python版本,例如Python3.10.5:

wget https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tar.xz

解压缩

tar -xvf Python-3.10.5.tar.xz

进入目录

cd Python-3.10.5/

此时如果直接编译Python也是可以的,但是使用过程中可能因为依赖缺失造成部分第三方库报错,所以推荐把依赖全部装好。

sudo apt-get build-dep python3
sudo apt-get install pkg-config
sudo apt-get install gdb lcov pkg-config libbz2-dev libffi-dev libgdbm-dev libgdbm-compat-dev liblzma-dev libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev lzma lzma-dev tk-dev uuid-dev zlib1g-dev

如果有报错

E: You must put some 'deb-src' URIs in your sources.list

那就添加一下,在/etc/apt/sources.list底部添加对应的源

比如Ubuntu20添加

deb-src http://archive.ubuntu.com/ubuntu/ focal main

Ubuntu22添加

deb-src http://archive.ubuntu.com/ubuntu/ jammy main

添加完成后更新一下

sudo apt-get update

更新后重新安装上面的依赖,就可以正常安装了。

现在开始编译,选择开启优化

./configure --enable-optimizations --with-lto
make -j $(nproc)
make altinstall

因为是要多版本共存,所以注意上面是使用make altinstall而不是make install

此时执行

python3.10

就应该可以正常使用Python了

3. Python版本管理

如果只进行到上一步必然是不行的,虽然Python已经安装完成了,但是多版本管理的问题依旧没有解决,我相信绝大多数人是不会愿意每次输入python3.10和pip3.10来操作的,而是喜欢python和pip

查看Python安装位置

which python3.10

上面我们并没有指明安装路径,所以应该安装到了默认路径

/usr/local/bin/python3.10

我们使用update-alternatives进行版本管理

首先将新安装的python地址和第一步看到系统原有的python路径全部添加进去

格式为

update-alternatives --install 链接路径 管理名称 源文件路径 权重

权重越大则代表优先级越高,例如

update-alternatives --install /usr/local/bin/python python /usr/local/bin/python3.10 3
update-alternatives --install /usr/local/bin/python python /usr/bin/python3 2
update-alternatives --install /usr/local/bin/python python /usr/bin/python2 1

如果需要管理python,使用

update-alternatives --config python

可以使用自动管理,也可以手动选择使用哪个python

完全相同的,将pip也添加进去

update-alternatives --install /usr/local/bin/pip pip /usr/local/bin/pip3.10 3
update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3 2
update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip2 1

注意有的系统Python是没带pip的,那样的话就不用添加进去了

同样的,管理pip使用

update-alternatives --config pip

选择好后,最后验证一下

python -V
pip -V

如果版本一致且pip操作的python路径就是你希望的python路径的话,那么就没有问题了。

-=||=-收藏
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇