开发环境配置
pyenv的官网github.com/pyenv/pyenv
Linux版本是CentOS 7
第一步:使用yum安装git
[root@CentOS60 ~]# yum -y install git
第二步:python安装依赖开发环境
[root@CentOS60 ~]# yum -y install gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel libffi-devel
注意:libffi-devel 包是python3.7版本所需要到,不然会报ModuleNotFoundError: No module named '_ctypes' 错误
第三步:添加一个普通用户python,并设置密码
这里添加的用户名不一定非要python,当然你也可以用root,我这里用普通账号来实现。
[root@CentOS60 ~]# useradd python
[root@CentOS60 ~]# passwd python
第四步:安装pyenv
用python用户登录执行如下命令,安装pyenv
[python@CentOS60 ~]$ curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash
极其重要的操作:在安装完毕之后,在最后会有一个提示,让我们将如下的代码加入到用户家目录的.bash_profile(CentOS 6)中或者.bashrc(CentOS 7)中
提示如下:
exportPATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenvvirtualenv-init -)"
第五步:我们查看当前系统python版本,然后安装我们需要的版本
[python@CentOS60 ~]$ python -V # CentOS 7默认自带的是2.7版本
# 利用pyenv查看pyenv所支持的命令
[python@CentOS60 ~]$ pyenv #查看pyenv所支持到命令
# 查看如何安装所需要的版本
[python@CentOS60 ~]$ source /home/python/.bashrc # 刷新配置文件否则下面语句无法执行 也可以用 . .bashrc (要确保在python的家目录也就是/home/python目录中)
[python@CentOS60 ~]$ pyenv help install #查看install 到帮助
相关参数:
-l 查看所有可以使用的版本
-f 强制重新安装,即使该版本已经安装了
-s 如果该版本已经安装,则跳过
-v 显示安装的过程
安装相关版本直接使用pyenv install版本号
[python@CentOS60 ~]$ pyenv install 3.7.3 -v #安装3.7.3
注意:由于源码是从国外服务器下载,有时候会下载失败,那么我们可以在home目录的.pyenv目录中建一个cache文件夹,将我们从其他地方已经下载好的包放进去,这里需要注意的是,直接安装下载的是什么格式的包,我们就需要放入什么格式的包,否则程序不会自动识别,为了保证成功,把所有的都放进去即可。我当前安装的时候,显示的是包是.tar.xz ,官网有.tar.xz和.tgz两种格式。
第六步:我们重新运行安装命令
[python@CentOS60 ~]$ pyenv install 3.7.3 -v #安装3.7.3
这样系统就会继续编译安装python 3.7.3
第七步:查看所有已安装的版本,然后设置python3.7.3为默认版本
[python@CentOS60 ~]$ pyenv versions #查看已安装到所有版本
如下图所示:
我们设置Python默认版本有三种情况
global :全局设置,包括当期其他用户或其他项目都会改变,基本上不可能用global来设置
shell :会话设置,只在当前会话生效,断开链接就失效,也基本上不用
local :局部设置,针对的是一个文件夹,我们可以创建一个文件夹然后讲项目放到该文件夹中这样既不会影响其他用户,也可以让自己的环境得以配置
local设置操作如下:
# 创建一个目录
[python@CentOS60 ~]$ mkdir study/projects -p #递归创建目录
# 进入该目录设置环境python版本
[python@CentOS60 ~]$ cd ./study/projects/ #进入projects目录
[python@CentOS60 projects]$ pyenv local 3.7.3 #将projects目录设置为3.7.3
# 查看是否设置成功,上级目录或其他目录都是默认到2.7,该目录下创建到子目录都是3.7.3,可自行验证
[python@CentOS60 projects]$ pyenv version #查看python版本
3.7.3 (set by/home/python/study/projects/.python-version)
[python@CentOS60 projects]$ python -V # 另一种查看方式,如果该种方式查看没有改过来,可断开重新连接
Python 3.7.3
# 进入上级目录查看python环境。
[python@CentOS60 projects]$ cd ..
[python@CentOS60 study]$ python -V
Python 2.7.5
第八步:配置虚拟环境
由于在第七步上面我们每一个项目或所需要到包或者环境都不可能完全一样,为了减少相互影响我们需要创建一个虚拟环境,我们将projects目录改回系统默认到python环境,进入projects目录
[python@CentOS60 projects]$ pyenv local system #将环境设置为系统默认
创建一个新的目录,如cmdb
[python@CentOS60 projects]$ mkdir cmdb #创建cmdb目录
进入cmdb,创建虚拟目录
[python@CentOS60 projects]$ cd cmdb
[python@CentOS60 cmdb]$ pyenv virtualenv 3.7.3 study373 # study373 是别名
使用virtualenv插件(该插件无需额外安装,直接使用即可),后面接python版本,并给当前虚拟环境取一个别名。创建好了之后,我们只要进入该文件夹,就会在目录前面加上我们到的别名,如下所示
(study373 ) [python@CentOS60 cmdb]$ pyenv versions
system
3.7.3
3.7.3/envs/zcf373
* zcf373 (set by /home/python/study/projects/cmdb/.python-version)
配置pip安装镜像
在python用户的home目录中创建一个pip文件夹,进入pip文件夹创建一个pip.conf文件,输入如下信息:
[global]
index-url=https://mirrors.aliyun.com/pypi/simple
trusted-host=mirrors.aliyun.com
具体步骤如下所示:
[python@CentOS60 ~]$ mkdir .pip #创建隐藏文件夹.pip
[python@CentOS60 ~]$ cd .pip/ #进入.pip
[python@CentOS60 .pip]$ touch pip.conf #创建文件pip.conf
[python@CentOS60 .pip]$ vim pip.conf #输入上面到内容
创建好来之后我们可以验证是否配置成功
(study373 ) [python@CentOS60 cmdb]$ pip install redis
从下载到网址和速度我们可以看到已经配置成功来。
如果要删除虚拟环境怎么办呢?
方法一:删除对应的目录文件夹即可:
首先删除 /home/python/.pyenv/versions 对应的虚拟环境名,这里只是一个软连接
在就是删除 /home/python/.pyenv/versions/3.7.3/envs 目录中的虚拟环境名,上面的软连接就是指向这个位置的。
方法二:使用命令删除
[python@CentOS60 .pip]$ pyenv virtualenv-delete 虚拟环境名