Python3.13编译安装&版本管理
python3.13编译安装
进入python官网下载对应的安装包。
选择tgz版本,右键复制链接,然后wget [链接]
1 | wget https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz |
解压并进入文件夹:
1 | tar -zvxf Python-3.13.0.tgz |
可能会遇到sqlite和openssl的问题,所以这里先未雨绸缪一下:
1 | yum -y install sqlite-devel # ubuntu请自行切换成apt-get |
1 | vim Modules/Setup |
找到ssl的相关配置,如下所示:
修改成这样:
其实就是直接加了两行代码:
1 | _ssl _ssl.c -I/usr/include/openssl -L/usr/local/lib -lssl -lcrypto |
这里-I后面加的是你的openssl头文件
路径,-L后面加的是库文件
路径,需要替换成你自己的,openssl安装可参考此教程。
1 | ./configure --enable-optimizations --with-openssl=/usr/local/bin/openssl |
如果有报错的话一般是依赖没有装全,直接把报错复制给GPT,它会告诉你需要安装哪些依赖,都比较简单,这里就不赘述了。
检测是否安装成功
1 | python3 -V |
python版本管理
使用alternatives进行版本管理,其实本质上就是进行了软链接。首先检查一下python3的位置:
1 | which python3 |
将它和/usr/bin/python3进行软链接:
1 | rm -rf /usr/bin/python3 |
如下图所示即为成功:
然后配置开始配置alternatives
:
1 | alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.10 1 |
这边--install
后面有四个参数:
1./usr/bin/python3
不用动。
2.python3
是命令的名字。
3./usr/local/bin/python3.10
是你的python可执行文件的真路径,一般来说就是带具体版本号的,和之前which python3
在同一个路径下。
4.1
指优先级,不要遗漏了。
可以如法炮制多个python版本,指定不同的优先级。
然后使用alternatives --config python3
来切换python版本:
这里+所在的位置就是当前的版本,输入数字切换对应版本,比如我这边切换到了python3.6,可以验证一下是否切换成功:
1 | python -V |
alternatives的运行机制
如果你对原理感兴趣的话,不妨使用ll
命令追踪一下,看看到底发生了什么:
我们可以发现,其实它就是套了一层/etc/alternatives/python3
,通过修改它指向的软链接位置,实现不同版本的切换。原理虽然简单,但是却十分实用~