Skip to content

开发工具系列之—pyenv:python版本切换 #61

Description

@johnnian

说明

由于 python2 与 python3 版本的问题比较令人头疼,不过好在有很多工具可以方便我们切换python的版本——pyenv

步骤1: 安装依赖

下面这些依赖,主要用于编译下载的python版本时使用

[root@localhost~]# yum -y install zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel xz xz-devel  libffi-devel 

步骤2: 安装/更新/卸载pyenv

############# 安装
[root@localhost~]# curl https://pyenv.run | bash

# 如果发现上面的脚本无法执行,Github无法下载,替代的方法是:
[root@localhost~]# git clone https://github.com/pyenv/pyenv.git ~/.pyenv
[root@localhost~]# cd ~/.pyenv && src/configure && make -C src

[root@localhost~]# vi ~/.bashrc
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
[root@localhost~]# source ~/.bashrc

############# 更新
[root@localhost~]# pyenv update

############# 卸载
[root@localhost~]# rm -fr ~/.pyenv
[root@localhost~]# vi ~/.bashrc
# 删除下面的几个配置
#export PATH="~/.pyenv/bin:$PATH"
#eval "$(pyenv init -)"
#eval "$(pyenv virtualenv-init -)"
[root@localhost~]# source ~/.bashrc

步骤3: pyenv常用操作

# 查看pyenv版本
[root@localhost~]# pyenv --version

# 查看pyenv安装路径
[root@localhost~]# whereis pyenv

# 查看当前使用的python版本
[root@localhost~]# pyenv version 

# 参看可安装的版本列表
[root@localhost~]# pyenv install --list

# 查看已安装的版本列表
[root@localhost~]# pyenv versions

# 设置全局版本, 3.6.2 是具体python版本号
[root@localhost~]# pyenv global 3.6.2

# 设置局部版本,仅在当前目录生效 3.6.2 是具体python版本号
[root@localhost~]# pyenv local 3.6.2

步骤4: 安装python版本

######### 步骤1: 下载并且安装版本

# 使用命令下载安装(这种安装方法非常慢)
[root@localhost~]# pyenv install 3.6.2

# 可以使用下面的方式安装
[root@localhost~]# v=3.6.2|wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v

######### 步骤2: 设置全局版本
[root@localhost~]# pyenv global 3.6.2

备注:

1、由于pyenv install下载python版本比较慢,可以手动下载python包,并且放在 ~/.pyenv/cache/目录下,在执行pyenv install命令之后, pyenv程序会自动判断并且加载对应的python包

2、如果报错:-ModuleNotFoundError: No module named '_ctypes',解决方法如下:

[root@localhost~]# yum install libffi-devel -y

3、安装完成后,python不同版本的安装路径是:

/用户home目录/.pyenv/versions/具体版本号

例如:

/root/.pyenv/versions/2.7.15/bin/python2.7

参考链接

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions