centos7 python3环境(virtualenv)搭建 及部分坑

由于yum依赖python2,不建议直接删除python2
安装前需要安装python3的依赖包

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 gcc kernel-devel kenel-headers make bzip2 gcc-c++ zlib zlib-devel libffi-devel

下载python3

我使用的是python3.7.1版本

# wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz

下载其他python版本

切换到python的下载目录,解压

# tar -zxvf Python-3.7.1.tgz
# cd Python-3.7.1

编译安装
–prefix选项是配置安装的路径,执行后所有资源文件放在/usr/local/python3的路径中
mkdir -p /usr/local/python3

	# ./configure --prefix=/usr/local/python3
    # make
    # make install 

等待一段时间安装完成------

修改软链接
若发现pip install 默认使用的是python2,此时下面必须要操作,python2跟着很多依赖包不能直接卸载,不然那linux会有问题,这个时候修改下面的软连接,使用pip3进行安装就可以完美规避这个问题!当virtualenv安装好后,在虚拟环境里就可以直接使用pip安装了(因为安装virtualenv指定了python3,在虚拟环境里默认就是python3)

# ln -s /usr/local/python3/bin/python3  /usr/bin/python3  
# ln -s /usr/local/python3/bin/pip3  /usr/bin/pip3  

接下来就可以直接使用pip3 安装需要的依赖包

安装virtualenv及virtualenvwrpper 及配置

安装

 # pip3 install virtualenv
 # pip3 install virtualenvwrapper

寻找virtualenvwrapper.sh路径

# find / -name virtualenvwrapper.sh
我的结果  /usr/local/python3/bin/virtualenvwrapper.sh    (virtualenvwapper的路径)
 # find / -name virtualenv
我的结果  /usr/local/python3/bin/virtualenv (virtualenv的路径)

配置bashrc

# vim ~/.bashrc
添加一下四行
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
# 指定virtualenvwapper的路径
source /usr/local/python3/bin/virtualenvwrapper.sh # 刚刚查找的路径
# 指定virtualenv的路径
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/python3/bin/virtualenv

# source ~/.bashrc  # 使其生效

以上python3的环境配置成功了
virtualenv常用命令

虚拟环境列表 workon或 lsvirtualenv

新建虚拟环境	mkvirtualenv [虚拟环境名称]

启动/切换虚拟环境	workon [虚拟环境名称]

删除虚拟环境	rmvirtualenv [虚拟环境名称]

离开虚拟环境	deactivate

遇到的坑

1、遇到 No module named ‘_ssl’

解决方案
1.1检测 系统 安装 OpenSSL

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel gcc gcc-c++ openssl-devel

1.2寻找openssl安装路径

# find / -name openssl
我的结果
/usr/lib64/openssl
/usr/include/openssl
/usr/bin/openssl
/etc/pki/ca-trust/extracted/openssl

我们需要知道include、lib或者是lib64上一级目录  
我的是/usr  备用(1.3更改路径时使用)

1.3编辑 ssl配置参数:切换到解压号的Python目录

# vim     你的Python目录/Modules/Setup.dist
大约在 209 行   取消这几行的注释
原参数
SSL=/usr/local/ssl
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto
 
改成下面的, 下面的路径/usr取自1.2查找的结果
SSL=/usr  
_ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib64 -lssl -lcrypto

1.4保存,重新编译安装

# make
# make install 

即可解决

2、后续问题继续更新。。。。

你可能感兴趣的:(python)