Python多版本管理软件pyenv的安装应用及pip的使用讲解

comyn: python大神,原大众点评运维平台架构师,现腾讯广告部核心运维专家,多年一线运维经验,参与过架构改造、平台迁移、自动化建设等运维核心项目,对开源系统都有深入理解,如LVS、Haproxy、MogileFS、Varnish、Nginx等,曾修改iptables内核实现实时流量镜像复制,奠定了大型公司流量无损压力测试模型。被广大网友称之为“扫地僧”,无所不能,从装机、到写代码、到千万 PV 架构细节、都有深入研究。

近期Comyn老师的Python视频推出之后,大家一直在讨论者pyenv这个软件的应用问题,简单写一篇基本用法,给大家做下简单介绍:
目录:
一、pyenv介绍
二、centos6.4上安装配置pyenv
三、使用pyenv安装python
四、pyenv的基本应用
五、pip安装与配置
六、使用pip安装python相关软件

运维必备python基础语法全讲解-国内No.1全新马哥linux系列三十

一、pyenv介绍
项目地址:https://github.com/yyuu/pyenv

关于pyenv的介绍:
一般在操作系统中我们会安装多个Python版本,在linux系统中一般默认就自带了Python2与Python3两个版本,所以在进行Python版本切换时会比较麻烦,pyenv就提供了一种简单的方式。

pyenv是一个能简易地在多个Python版本中进行切换的工具,它简单而优雅。

pyenv有以下功能:

  • 进行全局的Python版本切换
  • 为单个项目提供对应的Python版本
  • 使用环境变量能让你重写Python版本
  • 能在同一时间在不同版本间进行命令搜索

拥有以下特点:

  • 只依赖Python本身
  • 将目录添加进$PATH即可使用
  • 能够进行virtualenv管理

二、centos6.4上安装配置pyenv

为安装pyenv做准备工作(否则到后期使用pyenv的时候会有各种各样的问题)

[root@ansible1 ~]# yum groupinstall "Development tools"
[root@ansible1 ~]# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel

2.1、安装pyenv

安装方式一:

[root@ansible1 ~]# curl https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer |bash

安装方式二:

[root@ansible1 ~]# git clone git://github.com/yyuu/pyenv.git .pyenv

查看系统平台

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.0.1406 (Core) 

查看是否安装了git

[root@localhost ~]# rpm -qa | grep '^git'
git-1.8.3.1-4.el7.x86_64

查看.pyenv目录

[root@localhost ~]# stat .pyenv
  File: ‘.pyenv’
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd01h/64769d    Inode: 101761130   Links: 12
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2015-04-19 03:00:56.754454600 +0800
Modify: 2015-03-14 18:08:22.901941420 +0800
Change: 2015-03-14 18:08:22.901941420 +0800
 Birth: -

2.2、环境变量的设置

设置方式一(推荐该方式)

[root@ansible1 ~]# vim /etc/profile.d/pyenv.sh
   #!/bin/bash
  # Define environment variable
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval"$(pyenv init -)"
[root@ansible1 ~]# source /etc/profile.d/pyenv.sh

system表示系统默认版本

[root@localhost ~]# pyenv versions
* system (set by /root/.pyenv/version)

设置方式二 (该方式使得添加的环境变量和系统的环境变量在一块,不利于管理)

这里我们看到pyenv已经检测不到了

[root@ansible1 ~]# pyenv
-bash: pyenv: command not found
[root@ansible1 ~]#

追加下面四条指令到~/.bash_profile文件中去

[root@ansible1 ~]# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
[root@ansible1 ~]# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
[root@ansible1 ~]# echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
[root@ansible1 ~]# exec $SHELL
[root@ansible1 ~]# pyenv versions
bash: pyenv: command not found

使之生效

[root@ansible1 ~]# source ~/.bash_profile 

验证

[root@ansible1 ~]# pyenv versions
* system (set by /root/.pyenv/version)
[root@ansible1 ~]#

wKioL1N4qzDCEDUlAAMmKcGt2JM109.jpg
设置方式三 (该方式每次都要解析一遍pyenv init -输出的内容,不建议使用)

安装pyenv

[root@ansible1 ~]# curl https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer |bash
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                Dload  Upload   Total   Spent    Left  Speed
00000000--:--:--0:00:22--:--:--0

添加pyenv到PATH中去

[root@ansible1 ~]# vim /etc/profile
[root@ansible1 ~]# source /etc/profile

添加环境变量

[root@ansible1 ~]# echo 'eval "$(pyenv init -)"' > /etc/profile.d/pyenvnew.sh
[root@ansible1 ~]# source /etc/profile.d/pyenvnew.sh
-bash: pyenv: command not found
[root@ansible1 ~]# cat /etc/profile.d/pyenvnew.sh
eval"$(pyenv init -)"# 这里没有找到是因为对当前会话没有生效
[root@ansible1 ~]# pyenv
-bash: pyenv: command not found

wKioL1N4q0uAC6VdAAR3_jtHh5k078.jpg

2.3、安装好了,让我们看看pyenv的内置命令都有哪些
我们来看看pyenv都给我们提供了那些版本

[root@localhost ~]# pyenv -h
pyenv 20150204-18-g4e30b1a
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help ’ for information on a specific command.
For full documentation, see: https://github.com/yyuu/pyenv#readme
仅列出部分

[root@localhost ~]# pyenv install --list | less
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5
  2.5.1
  2.5.2
  2.5.3
  2.5.4
:...skipping...
Available versions:
  2.1.3
  2.2.3
  2.3.7
  2.4
  2.4.1
  2.4.2
  2.4.3
  2.4.4
  2.4.5
  2.4.6
  2.5
  2.5.1
  2.5.2
  2.5.3
  2.5.4
  2.5.5
  2.5.6
  2.6.6
  2.6.7
  2.6.8
  2.6.9
  2.7-dev
  2.7
  2.7.1
  2.7.2
  2.7.3
  2.7.4
  2.7.5
  2.7.6
  2.7.7
  2.7.8
  2.7.9
  3.0.1
  3.1-dev
  3.1.3
  3.1.4
  3.1.5
  3.2-dev
  3.2
  3.2.1
  3.2.2
  3.2.3

三、使用pyenv安装python
我们这安装两个版本,一个2.7.6 一个3.3.3
安装2.7.6版本

[root@ansible1 ~]# pyenv versions
* system (set by /root/.pyenv/version)
[root@ansible1 ~]# python -V
Python 2.6.6
[root@ansible1 ~]# pyenv install 2.7.6
[root@ansible1 ~]# pyenv versions
* system (set by /root/.pyenv/version)
2.7.6
[root@ansible1 ~]#

wKioL1N4rCyyOYJXAAQ5n-v-xuI769.jpg
安装3.3.3版本

[root@ansible1 ~]# pyenv versions
* system (set by /root/.pyenv/version)
2.7.6
[root@ansible1 ~]  [root@ansible1 ~]# pyenv install 3.3.3

wKioL1N4rD_yIac2AAQ12rTtFTw271.jpg

四、pyenv的基本应用
输入pyenv -h可以查看pyenv的命令

commands    List all available pyenv commands
local       Set or show the local application-specific Python version
global      Set or show the global Python version
  shell       Set or show the shell-specific Python version
  install     Install a Python version using python-build
  uninstall   Uninstall a specific Python version
  rehash      Rehash pyenv shims (run this after installing executables)
  version     Show the current Python version and its origin
  versions    List all Python versions available to pyenv
  which       Display the full path to an executable
  whence      List all Python versions that contain the given executable

我们常用的几个命令:

pyenv version #显示当前使用的Python
pyenv which python #显示当前Python的安裝路径
pyenv global #设置默认的Python版本
pyenv local #在当前路径创建一个.python-version,以后进入这个目录自动切换为该版本
pyenv shell #在当前shell的session中启用某个Python版本,优先级高于global,local

查看当前系统上所安装的python版本

[root@ansible1 ~]# pyenv versions
 system
*2.7.6 (set by /root/.python-version)
3.3.3

wKiom1N4rJKAIeseAASb_fNtqXc772.jpg

五、pip安装与配置
使用yum来安装pip
[root@ansible1 ~]# yum install python-pip
更换pip的源为国内的,为什么,你懂得

[root@ansible1 ~]# ls -a
.                .bash_history  .cshrc              .pip      .ssh      .vimrc
..               .bash_logout   .distlib            .pki      .tcshrc
anaconda-ks.cfg  .bash_profile  install.log         .pyenv    test.sh
.ansible         .bashrc        install.log.syslog  pyenv.sh  .viminfo

我们可以看到pip.conf是不存在的

[root@ansible1 ~]# ls ~/.pip/
pip.log
[root@ansible1 ~]# vim ~/.pip/pip.conf

添加两行,定义使用国内的豆瓣的pip源

[root@ansible1 ~]# tail ~/.pip/pip.conf
[global]
index-url = http://pypi.douban.com/simple
[root@ansible1 ~]#

wKioL1N4rIrA98lBAALKgwbVTYM821.jpg

六、使用pip安装python相关软件

你还在使用系统自带的python来敲命令么,你out了,使用ipython吧,命令行下这个就够了
看到下面的这个报错,你明白为什么我们前面要安装pyenv了吧

转载于Python多版本管理软件pyenv的安装应用及pip的使用讲解

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值