Python3编译安装以及创建虚拟运行环境

时间:2021-08-20 01:31:10

一、yum安装pip
# yum -y install epel-release   #Centos6.8安装epel源
# yum -y install python-pip
手动安装pip
# wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-18.0.1.tar.gz
# tar xf setuptools-18.0.1.tar.gz
# cd setuptools-18.0.1
# python setup.py install
# wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz
# tar -xf pip-1.5.4.tar.gz
# cd pip-1.5.4
# python setup.py install
# pip install --upgrade pip

二、编译安装python3
[root@web01 ~]# wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
[root@web01 ~]# tar xf Python-3.6.0.tgz
[root@web01 ~]# cd Python-3.6.0
[root@web01 Python-3.6.0]# ./configure --with-ssl
[root@web01 Python-3.6.0]# make
[root@web01 Python-3.6.0]# make install

编译安装时报以下错误的解决办法:
zipimport.ZipImportError: can't decompress data; zlib not available
1、打开终端,输入一下命令安装zlib相关依赖包:
[root@web01 ~]# yum -y install zlib*
2、进入 python安装包,修改Module路径的setup文件:
[root@web01 Python-3.6.0]# vim Module/Setup
找到一下一行代码,去掉注释:
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
去掉注释
zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
3、重新进入终端,进入python的安装包路径下执行:
[root@web01 Python-3.6.0]# ./configure --with-ssl
[root@web01 Python-3.6.0]# make && make install

三、创建虚拟运行环境
[root@web01 ~]# mkdir python3-env
[root@web01 ~]# cd python3-env
[root@web01 python3-env]# pyvenv env                      #创建名称为env的虚拟环境(或使用python3 -m venv env命令)
[root@web01 python3-env]# ls
env
[root@web01 python3-env]# source env/bin/activate   #进入虚拟环境
(env) [root@web01 python3-env]# deactivate              #退出虚拟环境

进入虚拟环境用pip安装模块报以下错误解决办法
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available
[root@web01 Python-3.6.0]# yum -y install openssl-devel   #ubantu,debian安装apt-get install openssl-dev
[root@web01 Python-3.6.0]# vim Modules/Setup                #编辑Setup文件去掉下图中几行的注释
Python3编译安装以及创建虚拟运行环境
[root@web01 Python-3.6.0]# ./configure --with-ssl

四、虚拟环境的工作原理(主要就是操作环境变量):
Python在非虚拟环境下的路径:
[root@web01 ~]# which python
/usr/bin/python

激活虚拟环境再次查看Python路径:
(env) [root@web01 python3-env]# source env/bin/activate
(env) [root@web01 python3-env]# which python
/root/python3-env/env/bin/python

$PATH环境变量在激活前后也不一样了
[root@web01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@web01 python3-env]# source env/bin/activate
(env) [root@web01 python3-env]# echo $PATH
/root/python3-env/env/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

注:
     创建python2的虚拟环境需要先安装pip install virtualenv
     virtualenv模块使用方法和python3的pyvenv模块一样
     Python3默认已经安装了pyvenv模块