Ubuntu 16安装Python 3.10

操作系统为Ubuntu 16.04,默认的Python版本有2.73.5。由于不满足要求,需要更高版本的python。这里使用了Python3.10。其他操作系统或不同版本,请参考使用

先安装 OpenSSL 1.1.1

系统默认的是1.0.2.g,不满足要求(可以在Python源码make 阶段看到相关错误)

$ wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz

$ tar -xzf openssl-1.1.1k.tar.gz

$ cd openssl-1.1.1k

$ ./config

$ make

$ sudo make install

sudo mv /usr/bin/openssl /usr/bin/openssl10.2
sudo ln -s /usr/local/bin/openssl /usr/bin/openssl

现在查看openssl版本:openssl version
openssl: error while loading shared libraries: libssl.so.1.1 cannot open shared object file: No such file or directory 
进入刚才解压得到的 openssl-1.1.0k 目录下,将动态链接库放到 /lib/x86_64-linux-gnu 执行 

cp libssl.so.1.1 /lib/x86_64-linux-gnu
cp libcrypto.so.1.1 /lib/x86_64-linux-gnu 

$ openssl version
OpenSSL 1.1.1k  25 Mar 2021

更新系统软件仓库:

$sudo apt-get update

安装必需的libffi等,视情况而定(可以在Python源码make 阶段看到相关错误)

$ sudo apt install libffi-dev libssl-dev

安装必要的编译工具

$ sudo apt-get install build-essential checkinstall

安装依赖库:

$ sudo apt-get install libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev

从 Python 官网下载 Python 3.10 的源代码。通过如下命令下载:

$ wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz

$ tar -zxf Python-3.10.9.tgz

$ cd Python-3.10.9

$ ./configure

$ make

$ sudo make install

$ python3 –version

Python 3.10.9

$ pip3 –version

pip 22.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)
 

为了在终端输入python时,使用安装的高版本python解释,需要将默认的解释器删除,并通过软链接新版的python解释器~
默认安装的python解释器在/usr/bin/python 或 /usr/bin/python3

$ ls -l /usr/bin/python*
lrwxrwxrwx 1 root root       9 Nov 24  2017 /usr/bin/python -> python2.7
lrwxrwxrwx 1 root root       9 Nov 24  2017 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root     319 Feb 24  2016 /usr/bin/python2-jsonschema
-rwxr-xr-x 1 root root     151 Nov 23  2015 /usr/bin/python2-pbr
-rwxr-xr-x 1 root root 3492624 Mar  2  2021 /usr/bin/python2.7
lrwxrwxrwx 1 root root       9 Oct 30 19:07 /usr/bin/python3 -> python3.5
-rwxr-xr-x 2 root root 4456208 Jan 27  2021 /usr/bin/python3.5
-rwxr-xr-x 2 root root 4456208 Jan 27  2021 /usr/bin/python3.5m
lrwxrwxrwx 1 root root      10 Oct 30 19:07 /usr/bin/python3m -> python3.5m

$ rm /usr/bin/python

$ ln -s /usr/local/bin/python3.10 /usr/bin/python

$python -V
Python 3.10.9

$ ln -s /usr/local/bin/pip3.10 /usr/bin/pip

$ pip -V
pip 22.3.1 from /usr/local/lib/python3.10/site-packages/pip (python 3.10)

### 如何在没有网络连接的情况下,在Ubuntu系统中安装Python 3.10 要在没有网络连接的环境中安装Python 3.10,可以采用离线安装的方式。以下是实现这一目标的具体方法: #### 准备阶段 在一个有互联网连接的相同架构(如x86_64)的Ubuntu机器上完成以下操作: 1. **更新系统软件包** 使用`apt update && apt upgrade -y`命令来确保系统的软件包是最新的[^3]。 2. **安装依赖项** 安装构建Python所需的工具和库文件,这些可以通过以下命令获取: ```bash sudo apt install build-essential libssl-dev zlib1g-dev \ libncurses5-dev libgdbm-dev libnss3-dev libsqlite3-dev \ libreadline-dev libffi-dev curl git wget -y ``` 3. **下载Python源码** 访问[Python官方网站](https://www.python.org/downloads/)并找到对应版本的Python 3.10源码压缩包链接。使用`wget`下载该文件到本地磁盘: ```bash wget https://www.python.org/ftp/python/3.10.x/Python-3.10.x.tgz tar -xf Python-3.10.x.tgz cd Python-3.10.x/ ``` 4. **编译与打包** 配置、编译并创建一个可移植的二进制包用于传输至无网环境的目标设备: ```bash ./configure --enable-optimizations make altinstall tar -czf /path/to/save/python3.10.tar.gz /usr/local/lib/python3.10* /usr/local/bin/python3.10* ``` 这里需要注意的是,通过`make altinstall`而非普通的`make install`是为了避免覆盖现有的`python3`符号链接[^1]。 #### 目标机部署阶段 将上述生成好的`.tar.gz`文件复制到目标无网络连接的Ubuntu主机上执行解压及配置工作: 1. 解压已准备好的Python程序包到适当位置比如`/opt/python3.10/`: ```bash mkdir -p /opt/python3.10/ tar -C /opt/python3.10/ -xzvf python3.10.tar.gz ``` 2. 创建必要的软链方便调用新版本解释器: ```bash ln -s /opt/python3.10/bin/python3.10 /usr/bin/python3.10 ``` 3. 测试安装成果确认一切正常运作: 执行下面这条指令查看是否成功加载期望中的解释器及其关联模块信息: ```bash python3.10 --version ``` 以上过程即完成了整个基于脱机模式下的Python 3.10定制化分发流程描述[^2]。 ```python import sys print(sys.version) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值