python虚拟环境virtualenv+升级python至2.7.18
简介
最近使用python做了一个小工具,需要上线,不可能每个环境都部署python和相关依赖。virtualenv可以创建一个python虚拟环境,将所需的依赖都安装至该环境中,将该环境打包,可移植部署至其他环境。同时,由于机器中的python版本是2.7.5,太低了,安全团队检查出有安全问题,所以得升级,需升级至2.7.18。
升级python版本(2.7.18)
获取python2.7.18版本安装包并解压
wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
tar -xvzf Python-2.7.18.tgz
配置编译环境
yum install gcc* openssl openssl-devel ncurses-devel.x86_64 bzip2-devel sqlite-devel python-devel zlib -y
安装
cd Python-2.7.18
./configure
make
#默认安装至/usr/local中,/usr/local/bin /usr/loca/lib64 /usr/local/lib
make install
验证
/usr/local/bin/python
至此,python2.7.18安装完成!!!
搭建虚拟环境
安装pip
wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
/usr/local/bin/python get-pip.py
验证pip安装成功
/usr/local/bin/pip --version
安装virtualenv
/usr/local/bin/pip install virtualenv
验证virtualenv安装成功
/usr/local/bin/virtualenv --version
升级setuptools和安装依赖
#升级setuptools(不然安装部分依赖会报错)
/usr/local/bin/pip install setuptools==44.1.1 --upgrade
#安装python开发包
yum install python-devel
#安装mysql开发包(按需部署,这里本人是依赖了mysql相关的依赖)
yum install mysql-devel
制作虚拟包
创建虚拟环境
#--copies可以将一些系统文件复制到虚拟环境中,否则将使用软链接的方式,这样将虚拟环境打包移植到其他环境时就可能无法使用
/usr/local/bin/virtualenv virtualenv-test --copies
#移植系统库至虚拟环境中,若不移植,将虚拟环境打包至其他环境时,需安装对应的库才可以使用
cp -r /usr/lib64/mysql virtualenv-test/lib/
cp -r /usr/local/lib/python2.7 virtualenv-test/lib/
cp -r /usr/local/include/python2.7 virtualenv-test/include/
更新虚拟环境配置文件(使虚拟环境中的python以及pip随处可使用,默认的配置文件中的地址为当前环境的地址,需更换为变量,使每个环境都可以用)
更新bin/activate文件
更行bin/pip文件
更新pyvenv.cfg文件
这样这个虚拟包不管放到哪个目录,哪个环境下,都可以在该虚拟环境中直接使用虚拟环境中的pip安装依赖和使用虚拟环境中的python
进入虚拟环境,安装服务所需的依赖
cd virtualenv-test
source ./activate
pip install -r requirement.txt
打包虚拟环境
tar -czf virtualenv.tar.gz virtualenv-test/
版权声明:本文为qq_27069821原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。