Python环境构建(Pyenv安装,pip配置)

Pyenv

Pyenv是一款Python版本管理工具,它的主要功能有:
·管理Python的解释器
·管理Python的版本
·管理Python的虚拟环境
下载地址:https://github.com/pyenv/pyenv

Pyenv安装

软件依赖的安装

需要的软件依赖:
git gcc make patch gdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
以上内容使用yum安装即可,关于yum的配置,可自行百度,这里不做过多赘述.
# 请使用root用户或sudo到root权限安装
yum install -y git gcc make patch gdbm-devel openssl-devel sqlite-devel \
readline-devel zlib-devel bzip2-devel

创建python用户

这里我们创建一个用户名为python的用户,密码随意.

# 创建用户
useradd python
# 赋予密码,这里一定要加上用户名,否则修改的是root的密码
passwd python

执行脚本安装Pyenv并添加配置信息

·接下来我们切换到python用户来进行后续操作.记得哦,python用户 su - python

# pyenv-installer是一个脚本文件,我们把它交给bash来执行.
curl -L https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer | bash

在这里插入图片描述

值得注意的是红色区域,脚本执行完毕后,会提示你,还没有将pyenv加到path,需要我们将下面的内容加到~/.bashrc文件中.
在这里插入图片描述
别忘了source一下~/.bash_profile哦

source ~/.bash_profile
或者
. ~/.bash_profile

使用pyenv安装Python

由于CentOS7.X默认的python是2.7.5版本(python -V查看版本),我这里要安装python的3.5.3版本,所以下面我们使用pyenv来安装python.
在这里插入图片描述

# 显示所有可安装的软件信息
pyenv install -l
# 安装命令,上图所示,python不显示全名,之显示版本号,所以安装时执行版本号即可
pyenv install 3.5.3

但是这里是从python官网安装的,速度让人崩溃,我这里只有可怜的1KB!!!所以我们该个方法!
pyenv比较人性化,它还支持将安装包下载到本地,执行相同的安装命令时,会先看本第是否有安装包,有的话直接安装,没有才去官网下载.这里我是在VMware上安装的Linux虚拟机,所以我们现在Windows下载好安装包,然后放到一个文件夹里,之后将此文件夹与Linux建立共享,这样就可以了.具体共享的方法可以参见我的另一篇博客(踩了好多坑,希望对大家会有所帮助)
VMware中Linux虚拟机共享文件夹,以及VMware Tools安装问题(内核版本不一致等)
ok,配置好共享文件夹后,我们在./pyenv目录下创建一个名为cache文件夹.

# pyenv安装时,会先去cache目录中查看,如果有安装包直接使用,没有的话再去官网下载
mkdir .pyenv/cache

然后我们将共享文件夹内的安装包拷贝到cache目录下,然后开始安装.
在这里插入图片描述
这里指定-v选项,查看安装是的具体过程信息.
在这里插入图片描述
安装完毕后可以查看版本信息:

# 查看python版本 大V
python -V
# 使用pyenv来查看当前环境版本
pyenv version
# 查看所有版本
pyenv versions

这里的system 表示的就是python -V显示的版本.
在这里插入图片描述

virtualenv插件

virtualenv插件,可以虚拟出多个python的环境,在多用户主机下开发的时候,每个项目,甚至每个子项目需要的python版本都可能不同,使用virtualenv插件可以很好的隔离开每个项目的python环境.
语言解释起来可能有点乱,下面我们上图说明:
我们创建一个projects的目录,用来管理项目s,也就是说以后的每个项目都要放到projects目录下.
在这里插入图片描述
可以看到,该目录下目前所使用的还是system的python环境.
我们再来创建一个proj_one项目目录,然后用python3.5.3来开发这个项目.
在这里插入图片描述
刚切到这个目录时,信息和上面的是一样的,还是使用system的python配置.
下面我们来创建一个python3.5.3的虚拟环境,并给这个环境起一个py_3.5.3的别名.(这回用到virtualenv插件了)

# virtualenv后跟要使用的python版本,以及该虚拟环境的别名
pyenv virtualenv 3.5.3 py_3.5.3

在原有3.5.3后面多了/envs/py_3.5.3目录,下面还多了一个py_3.5.3的版本(此时只是创建虚拟环境,尚未适用,所以目前此目录还是sysytem的配置)
在这里插入图片描述
为这个目录启用py_3.5.3的虚拟环境
pyenv有3个范围设置选项:
global:全局的,即类似system,所有目录,所有用户都适用这个版本的python
shell:一次shell会话范围
local:当前目录(及子目录)

pyenv local py_3.5.3

适用之后,在行首处,出现了虚拟环境的名称!!!
在这里插入图片描述
再来查看一下版本信息,不再是system了!
在这里插入图片描述

pip配置

pip对python来说,类似于Linux的yum,很强大的安装工具.
同样的,pip也可以像yum那样,配置仓库信息,由于国外的仓库我们实在是无力下载,所以呢我们配置成阿里云的镜像,以便接下来的安装能够顺畅.
首先在python用户的家目录下创建.pip目录,并在此目录下创建pip.conf配置文件

# 创建目录
mkdir ~/.pip
# 创建配置文件
touch ~/.pip/pip.conf

接下来配置仓库信息vim/vi进去,配置如下信息:

# 第一行仓库名称
# 第二行是镜像地址
# 第三行是将阿里云的镜像地址添加到信任主机列表
[global]
iindex-url=https://mirrors.aliyun.com/pypi/simple/
trusted-host=mirrors.aliyun.com

在这里插入图片描述

使用pip安装ipython和jupyter等python编辑工具

pip install ipython
pip install jupyter

在这里插入图片描述
这里值得注意的是,由于现在系统中有多个python环境,(system,3.5.3,别忘了还有我们的py_3.5.3),而默认的系统的2.7.5是没有pip命令的,我们需要切换到3.5.3的版本,这里我用proj_one目录演示,即py_3.5.3的虚拟环境.

安装完ipython和jupyter后,使用ipython生成密码,然后生成jupyter配置文件:

ipython
# 引入passwd模块
from IPython.lib import passwd
# 使用passwd函数生成密码
# 注意:'sha1:4e02f511e946:25c70555f1a01077187100f467635f8397e335e5'值,后面将会用到.
passwd()
最后别忘了exit退出ipython

在这里插入图片描述

# 生成jupyter的配置文件
jupyter notebook --generate-config

在这里插入图片描述
修改jupyter的配置信息:

vim /home/python/.jupyter/jupyter_notebook_config.py
添加如下内容:
# notebook将会的IP地址,*表示左右ip地址
c.NotebookApp.ip = '*'
# 因为多是SSH请求,所以主机一般不会有浏览器,设置成False则不会开启浏览器
c.NotebookApp.open_browser = False
# jupyter notebook的访问密码,上面用ipthon的passwd()生成的
c.NotebookApp.password = 'sha1:4e02f511e946:25c70555f1a01077187100f467635f8397e335e5'
# 端口号
c.NotebookApp.port = 8888

配置后保存退出,启动notebook

jupyter notebook

在这里插入图片描述
按照上面所给的ip和端口来访问.但是发现浏览器无法访问,原因可能是防火墙没有关闭.

# 查看防火墙状态running为防火墙开启状态
firewall-cmd --state

在这里插入图片描述

# 关闭防火墙
systemctl stop firewalld

在这里插入图片描述
刷新页面!输入密码!
在这里插入图片描述
搞定!
在这里插入图片描述

项目环境的移植

上面介绍了virtualenv这个插件,也安装了ipython和jupyter等软件,那么我们都安装了那些内容呢,可以来看一下.

# 使用pip命令,导出所有当前环境下的包名,到/tmp/packs.txt
pip freeze > /tmp/packs.txt

在这里插入图片描述
看一下我们竟然安装了这么多的包!
接下来我们在创建一个proj_two目录,这次让它使用3.5.3的python
在这里插入图片描述
发现只有下面的几个包
在这里插入图片描述
这里如果想让proj_two使用跟proj_one相同的包的话,可以直接导入刚才/tmp/packs.txt的内容来安装

# -r 选项表示从文件读入信息
pip install -r /tmp/packs.txt

总结:pyenv的virtualenv插件,可以很好的隔离不同的项目,使得每个项目的模块(包)的安装目录独自持有,这样不仅可以做到每个项目可以灵活的使用自己需要的版本,而且对以后的打包,发布,项目移植等都特别的有帮助.

发布了62 篇原创文章 · 获赞 3 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Leonardy/article/details/103095616