## 离线安装Python3
1.安装依赖环境
```sh
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
```
2.下载安装包
可以选择官网直接下载或者wget命令下载
* 官网(<https://www.python.org/)下载,点击downloads>
* wget:
wget https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tgz
3.解压
```sh
mkdir -p /usr/local/python3.10
tar -zxvf Python-3.9.0.tgz
```
4.编译安装
```sh
cd Python-3.10.1
./configure --prefix=/usr/local/python3.10
make && make install
```
5.配置环境变量
```sh
vi /etc/profile
export PYTHON_HOME=/usr/local/python3.10
export PATH=${PYTHON_HOME}/bin:$PATH
source /etc/profile
```
创建软连接
查看python指向:
```sh
ls -l /usr/bin | grep python
```
创建/usr/bin/python3
```sh
ln -s /usr/local/bin/python3.10/bin/python3 /usr/bin/python3 # 创建python3软连接
rm /usr/bin/python
ln -s /usr/bin/python3 /usr/bin/python
```
## 离线安装、迁移第三方模块
1.第三方模块下载
* 第三方模块下载可以直接下载whl文件,直接使用pip3 install
* 可在联网机器下载,迁移到离线服务器安装
下面主要介绍在在联网机器下载,迁移到离线服务器安装方式
如果新安装某一个模块,可以直接下载下来
```sh
pip3 download xxx -d /tmp/packages/
```
默认情况download是最新版本模块,但需要下载指定模块版本,例如:
```sh
pip3 download kafka-python==2.0.2 -d /tmp/packages/
```
* 查看已安装模块
```sh
pip3 list
Package Version
------------------ ---------
certifi 2021.10.8
charset-normalizer 2.0.9
idna 3.3
kafka-python 2.0.2
pip 21.2.4
pydruid 0.6.2
requests 2.26.0
setuptools 58.1.0
urllib3 1.26.7
```
* 将pip3 list的信息生成文档
```sh
pip3 freeze > requirements.txt
```
* 将requirement.txt文档中列出的模块信息下载到指定目录
```sh
# 第一种方式,推荐使用
pip3 download -r requirements.txt -d /tmp/packages/
# 第二种方式
pip3 install --download /tmp/packages -r requirements.txt
```
* 将下载好的模块copy到离线服务器
```sh
#是什么格式就安装什么格式的文件
pip3 install xxx.tar.gz
pip3 install xxx.whl
pip3 install xxx.xx
```
批量安装多个包和依赖包,所有文件放到一个目录中,进入这个目录执行命令
```sh
pip3 install ./*
```
issues:
issue1:pip3 安装依赖 ModuleNotFoundError: No module named '_ctypes'
解决方案
1.安装libffi-devel
```sh
yum install libffi-devel
```
2.重新编译安装
```sh
./configure --prefix=/usr/local/python3 --enable-optimizations
make && make install
```
---
issue2:No matching distribution found for request
```sh
Collecting request
Could not fetch URL https://pypi.python.org/simple/request/: There was a problem confirming the ssl certificate: [SSL: TLSV1_ALERT_PROTOCOL_VERSION] tlsv1 alert protocol version (_ssl.c:719) - skipping
Could not find a version that satisfies the requirement request (from versions: )
No matching distribution found for request
```
分析:网络原因导致
解决方案
```sh
pip3 install requests -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
```
issue3:pip3 install xxx.tar.gz 报连接错误
```sh
tar -zxvf xxx.tar.gz
cd xxx
python3 setup.py install
```
微信扫码关注
及时收看更多精彩内容