centos6.5升级python

CentOS 6.5 系统默认自带的Python是2.6.6版本,由于yum服务也是依赖于python的,所以不能直接覆盖;
利用virtualenv很好的解决了这个多版本的问题;

使用现有的 python 2.6.x 安装pip

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install -y python-pip

使用 pip 安装 virtualenv

pip install virtualenv

安装需要的python 2.7.x 3.6.x

CentOS6.5 安装Python 的依赖包

yum -y update
yum groupinstall -y development
yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel

安装 python3.7.2

sudo yum -y groupinstall "Development tools"
sudo 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 libffi-devel

这里 安装了之后编译出错
yum -y install libuuid-devel


wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz
tar -xJf Python-3.7.2.tar.xz
cd Python-3.7.2
./configure --prefix=/usr/local/python-3.7.2 --enable-optimizations --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
// 构建源码 安装 一般我们应该使用make install来进行安装,但是为了不覆盖系统默认的版本,我们使用make altinstall
make
sudo make altinstall
sudo ln -s /usr/local/python-3.7.2/bin/python3.7 /usr/bin/python3
sudo ln -s /usr/local/python-3.7.2/bin/pip3.7 /usr/bin/pip3

echo 'export PATH=$PATH:/usr/local/python-3.7.2/bin' >> /etc/profile
source /etc/profile

在目录 /etc/ld.so.conf.d 下,建立 python3.conf 加入 python lib 所在的目录
/usr/local/python-3.7.2/lib/

然后运行 sudo ldconfig 就可以了

检查版本
python3 --version

下载Python3.5.2的源码包并编译

wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz
tar -xzf Python-3.6.4.tgz
cd Python-3.6.4
./configure --prefix=/usr/local/python-3.7.2 --enable-optimizations --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"

// 构建源码 安装 一般我们应该使用make install来进行安装,但是为了不覆盖系统默认的版本,我们使用make altinstall
make
make altinstall

ln -s /usr/local/python-3.6.4/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python-3.6.4/bin/pip3.6 /usr/bin/pip3

检查版本
python3 --version

问题:安装python3.6.4后的问题error while loading shared libraries: libpython3.6m.so.1.0
在目录 /etc/ld.so.conf.d 下,建立 python3.conf,内容为lib路径/usr/local/python-3.6.4/lib
然后运行:ldconfig

使用刚安装的python的pip2.7安装虚拟环境
pip2.7 install virtualenv
测试安装结果
virtualenv --version

新建一个项目目录
mkdir mailService
cd mailService

新建一个虚拟环境,指定python版本
virtualenv -p /usr/local/python-3.6.4/bin/python3.6 py3Web
激活虚拟环境
source py3Mail/bin/activate

使用python3创建虚拟环境
python3.6 -m venv py3MailService
source py3MailService/bin/activate
去激活
deactivate

安装依赖包
pip install -r requirements.txt
然后把项目目录上传