CentOS 7离线安装python3 /pip3和依赖

步骤

下载依赖环境

1.首先准备一个可以连接网络的虚拟机下载所需要的依赖到指定的文件夹下面

yum install --downloadonly --downloaddir=./py3 zlib-devel bzip2-devel openssl-devel ncurses-devel epel-release gcc gcc-c++ xz-devel readline-devel gdbm-devel sqlite-devel tk-devel db4-devel libpcap-devel libffi-devel

2.把文件夹py3 打包

tar -czvf py3_lib.tar.gz  py3

3.导出

sz  py3_lib.tar.gz

4.导入没有网络的服务器

rz

5.解压

tar -zxvf  py3_lib.tar.gz

6.进入到文件夹py3

cd py3

7.批量安装rpm 包

rpm -ivh ./*

如果此命令报错  

安装时提示:warning: *.rpm: Header V3 RSA/SHA256 Signature, keykey ID c105b9de: NOKEY或者其他的一些错误 

解决的方法就是在rpm 语句后面加上 --force --nodeps

即原本为 rpm -ivh ./* 现在改成 rpm -ivh *.rpm --force --nodeps就可以了。nodeps的意思是忽视依赖关系。因为各个软件之间会有多多少少的联系。有了这两个设置选项就忽略了这些依赖关系,强制安装或者卸载

下载安装python3(我装的是python3.7.3,如果是安装其他的版本相应的改一下就可以了)

1.下载压缩包

wget --no-check-certificate https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz

2.同面一样转到内网的服务上,然后解压安装,解压到指定目录下

cd /usr/local
mkdir python3
tar -zxvf ./Python-3.7.3.tgz -C /usr/local/python3

3.安装到指定的目录,然后构建安装

./configure --prefix=/usr/local/python3    # 将python3安装在这个目录
make
make install

 出现上面的提示代表安装完成

4.配置环境变量

vi ~/.bash_profile
添加以下代码:
export PYTHON_HOME=/usr/local/python3 export PATH=$PYTHON_HOME/bin:$PATH

5.输入python3 测试安装是否成功


输入pip3 list

如果不报错,那最好补过了

但是如果报出这样的错误

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

解决方法

1.参考这样方法 

https://blog.csdn.net/qq_23889009/article/details/100887640

2.上面这种方法不行的话,参考这种

https://www.dazhuanlan.com/2020/01/03/5e0ebcf045ee0/

 这一步不用安装,因为你之前已经批量安装过python3依赖的包

$ ./configure --prefix=/usr/local/python3  --with-openssl=/usr/local/openssl # openssl文件夹指向第一步安装的openssl目录
$ make all
$ make install

 (1)创建软连接的时候,可能会报出已经存在,需要你删除原来的软连接

注意:删除软链接的时候  

假如是  ln -s /home/user/bak  /var/bak   --->>  rm /var/bak 

不用加最后的下划线

(2)最后查询openssl version的时候  如果报出错误

需要在vi ~/.bash_profile 添加openssl的环境变量

这样按照步骤就可以了

原文地址:https://www.cnblogs.com/yyfyl/p/14964234.html