python2&3 编译安装

依赖

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

解压

tar -xvf Python-2.6.6.tgz
cd Python-2.6.6

准备安装目录及安装到此目录

mkdir /usr/local/python2
./configure --prefix=/usr/local/python2
make && make install 

添加环境变量

PATH=$PATH:/usr/local/python2/bin

建立软连接

目的是使python命令指向python3

ln -s /usr/local/python3/bin/python3 /usr/bin/python

如果需要(python3)

创建一下pip3的软链接

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

补充:(方便读者遇到问题时查阅)

报错1:
关于在centos下安装python3.7.0以上版本时报错ModuleNotFoundError: 
No module named '_ctypes'的解决办法

https://blog.csdn.net/qq_36416904/article/details/79316972
link

由于在centos7系统中没有安装外部函数库(libffi)的开发链接库软件包,
所以在安装pip的时候就报了"ModuleNotFoundError: No module named '_ctypes'"的错误。
#yum install libffi-devel -y
#make install
3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可。
报错2:使用pip3
解决pip is configured with locations that require TLS/SSL问题
Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) 
after connection broken by 'SSLError("Can't connect to HTTPS URL
 because the SSL module is not available.")': /simple/virtualenv/

https://www.cnblogs.com/ajaxa/p/11576562.html
link
原因

系统版本centos6.5,其中openssl的版本为OpenSSL 1.0.1e-fips 11 Feb 2013,而python3.7
需要的openssl的版本为1.0.2或者1.1.x,需要对openssl进行升级,
并重新编译python3.7.0。yum 安装的openssl 版本都比较低。
``
# 1.下载openssl
wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
[link](https://www.openssl.org/source/openssl-1.1.1a.tar.gz)
tar -zxvf openssl-1.1.1a.tar.gz
cd openssl-1.1.1a
# 2.编译安装
./config --prefix=/usr/local/openssl no-zlib #不需要zlib
make
make install
# 3.备份原配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
# 4.新版配置
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 5.修改系统配置
## 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
## 使修改后的/etc/ld.so.conf生效
ldconfig -v
# 6.查看openssl版本
openssl version
openssl version 提示:
/usr/local/openssl/bin/openssl: error while loading shared libraries: 
libssl.so.1.1: cannot open shared object file: No such file or directory
假如你的libssl.so.1.1 文件在/usr/local/openssl/lib/下面,可以这样做
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

重新安装python
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make
make install

以下报错:为网络原因
ERROR: Exception:
Traceback (most recent call last):
File “/usr/local/python3/lib/python3.9/site-packages/pip/_vendor/urllib3/response.py”, line 437, in _error_catcher
在这里插入图片描述
本文说明,主要技术内容来自互联网技术大佬的分享,还有一些自我的加工(仅仅起到注释说明的作用)。如有相关疑问,请留言,将确认之后,执行侵权必删

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值