python安装
本文已更新,亲测安装成功。
为什么用3.6.8?
安装了3.7,碰到一个坑,版本不匹配,当然,根据个人需要,可以装自己喜欢的版本
1.组件安装
需要安装组件:libffi-devel,否则在部署python项目时,会遇到错误。这边提前安装了
yum install libffi-devel -y
# 这一步不一定需要,centos7.0可能需要。不然安装到make&&make install的时候,会有error
yum -y install zlib*
依赖安装
# openssl,bzip,等。如果有报错,请到文章末尾看
# centos8可以用这个,
# yum -y install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel
#centos7推荐用这个
yum -y install openssl-devel bzip2-devel sqlite-devel readline-devel expat-devel gdbm-devel zlib-devel zlib* ncurses-devel libffi-devel tk-devel libffi-devel
#安装make编译所需的gcc,g++编译器
yum -y install gcc automake autoconf libtool make wget
下载Python安装包
# 进入指定路径
cd /usr/local
# 下载python源码(建议迅雷下载)
wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz
wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz
wget https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
# 解压源码压缩包
tar -zxvf Python-3.9.6.tgz
tar -zxvf Python-3.6.8.tgz
tar -zxvf Python-3.8.3.tgz
tar -zxvf Python-3.7.0.tgz
# 把解压后的文件名改为python3
mv /usr/local/Python-3.9.6/ ./python3
mv /usr/local/Python-3.6.8/ ./python3
mv /usr/local/Python-3.8.3/ ./python3
mv /usr/local/Python-3.7.0/ ./python3
安装python
# 进入目录
cd /usr/local/python3
# 编译 和安装
./configure --prefix=/usr/local/python3 # 安装到这个目录
# ./configure 后边prefix不写,就是当前目录
make && make install
创建软连接
# 绑定软连接,这里需要绑定到你安装的目录。
mv /usr/bin/python /usr/bin/python.bak # 做了这一步之后,记得看本文章最末!
# 因为系统自带的python环境找不到了。yum会报错
# 软连接python
ln -s /usr/local/python3/bin/python3 /usr/bin/python
# 软连接pip
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
# 移除软连接,和删除目录一样。rm -rf /usr/bin/pip
# 验证是否安装成功
pip -V
python -V
安装过程中的报错
centos7, zipimport报错
报错内容
zipimport.ZipImportError: can't decompress data; zlib not available
解决方案
yum -y install zlib*
然后再回到
make&&make install
centOS 安装python高版本后,yum报错
# 查看系统原来的python版本命令:
whereis python
# 原因:yum使用的python环境不适应
# 解决方案:编辑如下两个文件,文件的第一行,指定系统原来的python版本
/usr/bin/yum
/usr/libexec/urlgrabber-ext-down
修改第一行如下(版本要自己更换)
#!/usr/bin/python2.7
依赖安装时报错:
libselinux conflicts with fakesystemd-1-17.el7.centos.noarch
yum swap -y fakesystemd systemd && yum clean all
yum update -y && yum clean all