在centos中部署多个python版本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在centos中部署多个python版本相关的知识,希望对你有一定的参考价值。

使用pyenv+virtualenv方式部署python多版本

pyenv vs virtualenv

  pyenv 是针对 python 版本的管理,通过修改环境变量的方式实现;

  virtualenv 是针对python的包的多版本管理,通过将python包安装到一个模块来作为python的包虚拟环境,通过切换目录来实现不同包环境间的切换。

pyenv 原理

  pyenv 的美好之处在于,它并没有使用将不同的 $PATH 植入不同的 shell 这种高耦合的工作方式,而是简单地在 $PATH 的最前面插入了一个垫片路径(shims):~/.pyenv/shims:/usr/local/bin:/usr/bin:/bin。所有对 Python 可执行文件的查找都会首先被这个 shims 路径截获,从而架空了后面的系统路径。

pyenv 安装使用 (安装使用网络yum源)

系统版本:

技术分享

1)、安装依赖包:

yum install gcc  -y

yum install python-devel -y

sudo yum install readline readline-devel readline-static -y

sudo yum install openssl openssl-devel openssl-static -y

sudo yum install sqlite-devel -y

sudo yum install bzip2-devel bzip2-libs -y

yum -y install python-setuptools

easy_install pip

2)、安装pyenv

  pyenv需要git工具,需要先安装git工具

yum -y install git

pyenv 提供了自动安装的工具,执行命令安装即可:

  curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/

master/bin/pyenv-installer | bash

如果手动安装,可以执行此命令

pyenv 检出到你想安装的目录。建议路径为:$HOME/.pyenv

 $ cd

 $ git clone git://github.com/yyuu/pyenv.git .pyenv

 

添加环境变量:

vi  ~/.bashrc     ##专用于当前用户bash shellbash信息,当登录时以及每次打开新的shell,该该文件被读取

export PYENV_ROOT="${HOME}/.pyenv"

 

if [ -d "${PYENV_ROOT}" ]; then

  export PATH="${PYENV_ROOT}/bin:${PATH}"

  eval "$(pyenv init -)"

fi

 

# source  /.bashrc        //立即生效

至此,pyenv安装也就完成了,接下来看看都有哪些python版本可以安装

技术分享

技术分享

以上这些,都是我们可以安装的版本,centos7默认安装的python版本为2.7.5

 

安装一个3.6.1的版本试试:

技术分享

使用

  创建虚拟环境 

$ pyenv virtualenv  3.6.1  my-virtual-env-3.6.1(自定义的名称)

技术分享

若不指定python 版本,会汇报认使用当前环境python版本。

  

列出当前虚拟环境 pyenv virtualenvs

技术分享

激活虚拟环境 pyenv activate my-virtual-env-3.6.1

技术分享

激活虚拟环境后,需要执行此命令,更新一下数据库

#pyenv  rehash

  直接进入python查看:

技术分享

查看当前正在使用的版本:

技术分享

注:其中的星号表示当前正在使用的版本

  退出虚拟环境 pyenv deactivate

技术分享

删除虚拟环境 pyenv uninstall my-virtual-env

 

注意:

  此上方法是通过网络下载此安装包,(网速不好的时候时间偏长),或着也可以通过本地安装方式:(安装python2.7.10

 1)、首先下载python2.7.10的安装包,可以使用pyenv install 2.7.10  查看下载源:

 如:

技术分享

注:将上面的版本替换即可,下载成功后,将安装包上传至~/.pyenv/cache目录下:如

技术分享

然后执行命令安装:

  pyenv install  2.7.10

系统默认会从cache路径下执行本地安装2.7.10

技术分享

查看当前支持的版本:

技术分享

如果使用2.7.10版本,和上面提到的使用3.6.1的版本一样。

1)、创建虚拟环境

2)、激活虚拟环境

例:

技术分享

创建完虚拟环境后,就可以随意切换python玩了;

命令注释:

例如:

pyenv global

 

设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。

$ pyenv global 3.4.0

<br />

pyenv local

 

设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。

$ pyenv local 2.7.3

<br />

pyenv shell

 

设置面向 shell Python 版本,通过设置当前 shell  PYENV_VERSION 环境变量的方式。这个版本的优先级比 local global 都要高。--unset 参数可以用于取消当前 shell 设定的版本。

$ pyenv shell pypy-2.2.1$ pyenv shell --unset

 

根据当前的虚拟环境,我们可以执行以下命令随意切换:

切换到2.7.10:

技术分享


切换到3.6.1版本

技术分享


本文出自 “keep常明” 博客,谢绝转载!

以上是关于在centos中部署多个python版本的主要内容,如果未能解决你的问题,请参考以下文章

python系列centos7.x中部署多个python版本

Nginx+uWSGI+Django部署方案的详细实现过程

ansible 安装部署

CentOS8部署自己本地的django项目

如何检查安装在 osx 和 centos 上的所有 python 版本

centos7部署pyenv安装python多版本