引言
在CentOS中使用yum安装python3时,总是安装不到需要的版本,在一些特定的环境下又需要特定版本的Python。然而网上的各种教程又良莠不齐(在此特别diss某某DN),故本篇将详细整理一遍在CentOS7上编译安装Python3的过程。
安装过程
安装epel-release
代码语言:javascript复制什么是EPEL?EPEL是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL之后,就相当于添加了一个第三方源。 出处: http://www.uyts.com/archives/249
yum -y install epel-release
更新系统
代码语言:javascript复制yum -y update
重启
代码语言:javascript复制reboot
安装开发者工具
代码语言:javascript复制yum groupinstall "Development Tools" -y
yum install openssl-devel libffi-devel bzip2-devel -y
确认gcc可用
代码语言:javascript复制gcc --version
如果没有wget,需要安装wget
代码语言:javascript复制yum install wget -y
下载Python3.9 如果下载速度慢可以自行寻找国内镜像(https://mirrors.huaweicloud.com/python/3.9.10/Python-3.9.10.tgz)替换或者####
代码语言:javascript复制wget https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz
解压
代码语言:javascript复制tar -xvf Python-3.9.10.tgz
进入文件夹
代码语言:javascript复制cd ./Python-3.9.10
配置Python安装
代码语言:javascript复制./configure --enable-optimizations
编译安装
代码语言:javascript复制make altinstall与make install的区别,altinstall skips creating the python link and the manual pages links。 altinstall跳过创建python链接和手册页链接的操作。 如果使用make install,在系统中将会有两个不同版本的Python在/usr/bin/目录中,这将会导致很多问题。
make altinstall
检查是否成功安装
代码语言:javascript复制$ python3.9 --version
Python 3.9.10
python3.9对应的pip也会安装
代码语言:javascript复制$ pip3.9 --version
pip 21.2.4 from /usr/local/lib/python3.9/site-packages/pip (python 3.9)
升级pip至最新版本
代码语言:javascript复制python3.9 -m pip install --upgrade pip
至此常规的安装过程就结束了,enjoy it!
安装虚拟环境
virtualenv是python中一个常用的虚拟环境管理工具 使用pip安装它
代码语言:javascript复制pip3.9 install virtualenv
创建一个文件夹用于管理虚拟环境,并进入文件夹
代码语言:javascript复制mkdir ~/venv/
cd ~/venv/
创建虚拟环境(其中web是一个自定义的名字)
代码语言:javascript复制virtualenv web
激活虚拟环境
代码语言:javascript复制source ./web/bin/activate
这时我们可以看到在命令行的前缀多了一个(web),也就是虚拟环境的名称 现在输入python和pip的话就是默认使用的虚拟环境了。
使用完成后退出虚拟环境(在任何目录执行都可以)
代码语言:javascript复制deactivate
找不到sqlite
原因
安装python的时候没有找到sqlite3.so的库。
解决方法
先去官网下载源码包
代码语言:javascript复制wget https://www.sqlite.org/2021/sqlite-autoconf-3350500.tar.gz
解压
代码语言:javascript复制tar -zxvf sqlite-autoconf-3350500.tar.gz
编译安装
代码语言:javascript复制./configure --prefix=/usr/local/
make && make install
重命名并建立软链接
代码语言:javascript复制mv /usr/bin/sqlite3 /usr/bin/sqlite3.bak
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
配置环境变量
代码语言:javascript复制vi /etc/profile
到最下面一行添加
代码语言:javascript复制export LD_LIBRARY_PATH="/usr/local/lib"
然后激活环境变量
代码语言:javascript复制source /etc/profile
检查sqlite3版本
代码语言:javascript复制sqlite3 --version
到这为止,我们还是不能在python中直接使用sqlite3的,还需要到python的源代码文件夹里重新make altinstall一下 然后就可以愉快地使用Django啦!