Skip to content

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

Open
@johnnian

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

参考链接

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions