欢迎光临
我一直在努力开车

【pyenv】Python多版本控制神器-pyenv使用

之前Abbey写过《centos6升级Python》,但是只能说又臭又长。一直听说过pyenv,但是没有实际使用过。今天Abbey用了一次就完全喜欢上了pyenv。

众所周知,因linux各种发行版本不同,系统带的Python版本也不同,像Abbey一直用的是Python2.7,习惯用centos7,但是有时候拿到的centos6,自带的是python2.6,所以每次都要去手动升级到python2.7来,步骤繁琐,容易出错。

而pyenv解决的就是python不同版本切换的问题。通过简单两三个命令就可以切换到不同版本的Python。

那么为什么不用virtualenv呢?可能是virtualenv名字太长吧。开玩笑,因为virtualenv每次都需要切换到虚拟环境,使用起来还是比较繁琐的。

安装

安装前准备

  1. 因安装前需要安装好git,因此需要提前安装好git。参考《Git安装教程
  2. 最好安装一些依赖,避免安装的Python shell无法退格:
    yum -y install zlib*
    yum install openssl -y
    yum install openssl-devel -y
    yum install sqlite-devel -y
    yum install readline readline-devel -y

自动安装

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

运行完之后提示

WARNING: seems you still have not added 'pyenv' to the load path.

# Load pyenv automatically by adding
# the following to ~/.bashrc:

export PATH="/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

则将后面三行语句添加到~/.bashrc最后面(不一定是~/.bashrc,具体看安装完后的提示内容),然后运行

source ~/.bashrc

运行:

pyenv

提示以下内容说明安装成功

pyenv 1.2.11
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 <command>' for information on a specific command.
For full documentation, see: https://github.com/pyenv/pyenv#readme

pyenv常用命令

python配置

  • $ pyenv versions — 查看系统当前安装的python列表
  • $ pyenv install -v 3.5.1 — 安装python
  • $ pyenv uninstall 2.7.3 — 卸载python
  • $ pyenv rehash — 创建垫片路径(为所有已安装的可执行文件创建 shims,如:~/.pyenv/versions/*/bin/*,因此,每当你增删了 Python 版本或带有可执行文件的包(如 pip)以后,都应该执行一次本命令

python切换

  • $ pyenv global 3.4.0 — 设置全局的 Python 版本,通过将版本号写入 ~/.pyenv/version 文件的方式。
  • $ pyenv local 2.7.3 — 设置面向程序的本地版本,通过将版本号写入当前目录下的 .python-version 文件的方式。通过这种方式设置的 Python 版本优先级较 global 高。
    pyenv 会从当前目录开始向上逐级查找 .python-version 文件,直到根目录为止。若找不到,就用 global 版本。
  • $ pyenv shell pypy-2.2.1 — 设置面向 shell 的 Python 版本,通过设置当前 shell 的 PYENV_VERSION 环境变量的方式。这个版本的优先级比 local 和 global 都要高。–unset 参数可以用于取消当前 shell 设定的版本。
  • $ pyenv shell --unset

python优先级

shell > local > global

使用示例

比如Abbey在centos7下,想要用Python3.5进行web开发

第一步:pyenv安装Python3.5.1

pyenv install -v 3.5.1

运行之后会自动安装Python3.5.1

第二步:运行pyenv rehash

pyenv rehash

第三步:在需要使用Python3.5.1的项目目录切换到Python3.5.1

比如,需要使用Python3.5.1的目录是:/root/Web3.5,则在/root/Web3.5目录下运行:

pyenv local 3.5.1

运行之后,在/root/Web3.5目录下的Python版本就为3.5.1了,不信在/root/Web3.5下运行:

python -V

提示

Python 3.5.1

切换到其他目录则不是Python3.5.1。

使用起来很方便!

 

赞(0)
未经允许不得转载:一个人的公交 » 【pyenv】Python多版本控制神器-pyenv使用

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Onedrive个人网盘搭建

GitHub地址联系Abbey