Python多版本管理軟件pyenv的安裝應用及pip的使用講解

近期Comyn老師的Python視頻推出之後,大家一直在討論者pyenv這個軟件的應用問題,簡單寫一篇基本用法,給大家做下簡單介紹:

目錄:

一、pyenv介紹

二、centos6.4上安裝配置pyenv

三、使用pyenv安裝python

四、pyenv的基本應用

五、pip安裝與配置

六、使用pip安裝python相關軟件




一、pyenv介紹

項目地址:https://github.com/yyuu/pyenv


關於pyenv的介紹:

一般在操作系統中我們會安裝多個Python版本,在*nix系統中一般默認就自帶了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



wKioL1N4qg7jdWQTAAZE-DYLmyQ453.jpg

2.2、環境變量的設置


  • 設置方式一(推薦該方式)


    [root@ansible1 ~]# vim /etc/profile.d/pyenv.sh
    #!/bin/bash
    # File Name: /etc/profile.d/pyenv.sh
    # Author: 馬哥教育
    # QQ: 1661815153 
    # Created Time: Fri 16 May 2014 02:27:06 AM CST
    #########################################################################

    # 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



  • wKiom1N4q02z04aOAAOtw8lYtBY149.jpg

  • 設置方式二 (該方式使得添加的環境變量和系統的環境變量在一塊,不利於管理)

    # 把我們剛纔設置的pyenv.sh文件移除

    [root@ansible1 ~]# mv /etc/profile.d/pyenv.sh ./  
    [root@ansible1 ~]# source /etc/profile
    # 這裏我們看到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都給我們提供了那些版本

  • wKiom1N4q4zwkes1AAS7Uc0SiTc142.jpg

  • 僅列出部分

  • wKioL1N4q3Xyv5JTAAWXZyQY6Sg946.jpg





三、使用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 <version>             #設置默認的Python版本 
pyenv local <version>             #在當前路徑創建一個.python-version,以後進入這個目錄自動切換爲該版本 
pyenv shell <version>             #在當前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了吧

wKiom1N4rNuAlSSvAANFGDfVHY0728.jpg

wKioL1N4rLPiGQ4fAAa_2pF0t3Q381.jpg


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章