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

  • Post author:
  • Post category:python




由于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的路径中

创建

 ./configure --prefix=/usr/local

编译安装

make && make install

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

修改软链接


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

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

切换pip 源,下载更快

mkdir ~/.pip
vim ~/.pip/pip.conf

写入内容

[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

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



安装virtualenv及virtualenvwrpper 及配置

安装(必须使用Python3的pip去安装

pip3 install virtualenv virtualenvwrapper

寻找virtualenvwrapper.sh路径

find / -name virtualenvwrapper.sh

我的结果 /usr/local/bin/virtualenvwrapper.sh (virtualenvwapper的路径)

find / -name virtualenv

我的结果 /usr/local/bin/virtualenv (virtualenv的路径)

配置bashrc

vim ~/.bashrc

根据刚才查找的路径,添加一下四行

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
# 指定virtualenvwapper的路径
source /usr/local/bin/virtualenvwrapper.sh # 刚刚查找的路径
# 指定virtualenv的路径
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/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、后续问题继续更新。。。。



版权声明:本文为qq_43656718原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。