10

Ubuntu 下 pyenv 的安装及使用

 3 years ago
source link: https://www.wenyuanblog.com/blogs/python-install-pyenv-in-ubuntu.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Ubuntu 下 pyenv 的安装及使用

在实际工作过程中,我们可能需要同时用到多个版本的 Python,并在各个版本之间来回切换。
或者对相同的 Python 版本,在不同的项目中使用不同版本的软件包。

系统环境:Ubuntu16.04
借助工具:pyenv
实现目标:管理不同的 Python 版本,并且隔离在不同版本下安装的第三方包。

二、安装 pyenv 的依赖库

安装 pyenv 需要依赖的库很多。

# 执行以下命令安装依赖库
# 更新源
sudo apt-get update
# 更新软件
sudo apt-get upgrade

sudo apt-get install make build-essential libssl-dev zlib1g-dev 
sudo apt-get install libbz2-dev libreadline-dev libsqlite3-dev wget curl 
sudo apt-get install llvm libncurses5-dev libncursesw5-dev 

三、安装 pyenv

pyenv 是一个 Python 版本管理工具,它能够进行全局的 Python 版本切换,也可以为单个项目提供对应的 Python 版本。

使用 pyenv 以后,可以在服务器上安装多个不同的 Python 版本。不同 Python 版本之间的切换也非常简单。

pyenv 官方地址:https://github.com/pyenv/pyenv-installer。

通常来说,安装一个开源程序需要自己编译和下载相关依赖包,但是作者提供了一个简易的安装器,只需要一条命令即可搞定安装。

curl https://pyenv.run | bash

pyenv.run 重定向到 GitHub 内的安装脚本,上面这句命令等同于:

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

配置环境变量,将安装路径写入 ~/.bashrc

# 将以下三条语句写入 ~/.bashrc
vim .bashrc
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

配置立刻生效:

source ~/.bashrc

如果路径第一个结尾是 shims 则表示成功:

echo $PATH

/home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:
/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:
/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

如果想升级 pyenv:

pyenv update

如果想卸载 pyenv(pyenv 安装的默认路径为 ~/.pyenv,如果自定义安装路径则删除自定义文件夹):

rm -fr ~/.pyenv

并删除 .bashrc 下面的环境变量:

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

四、使用 pyenv

1. 查看 pyenv 当前支持哪些 Python 版本

pyenv install --list

2. 列出本地 pyenv 中所有可用的 Python 版本

pyenv versions

3. 选择指定的 Python 版本

pyenv global 3.7.3  
# 查看版本
python

切换 Python 版本以后,与版本相关的依赖也会一起切换。因此,我们不用担心不同的版本在系统中是否会相互干扰。

4. 删除指定 Python 版本

pyenv uninstall 3.7.3
remove /home/python/.pyenv/versions/3.7.3? y
// 列出删除 3.7. 3后,pyenv 中所有可用的 Python 版本
pyenv versions

5. 在 pyen v中安装 Python

在安装 Python 之前,我们必须要安装 Python 所需要的依赖包,这个必须要安装:

# 1. 安装 Python 所需要的依赖包
sudo apt-get install libc6-dev gcc

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
# 2. 安装 Python
#---------------第一种方式---------------
pyenv install 3.7.3 -v  #-v 以日志模式显示安装过程
#因为pyenv会自动到github上下载,速度超慢,所以一般会选择使用curl或者wget下载到~/.pyenv/cache下,
#然后再用pyenv安装,推荐使用第一种方式。下面是可选的安装模式。
#---------------第二种方式---------------
cd ~/.pyenv
sudo mkdir cache
wget -c http://mirrors.sohu.com/python/3.7.3/Python-3.7.3.tar.xz -P  ~/.pyenv/cache/
pyenv install 3.7.3 -v

# 3. 更新 pyenv 数据库
pyenv rehash

# 4. 列出所安装的 Python 版本
pyenv versions

#5. 切换 Python 版本
pyenv global 3.7.3

# 6. 验证版本
python
  • 使用 pyenv 管理 Python,必须是用 pyenv 安装的 Python 才行,系统以前有的,需要重新用 pyenv 安装;
  • 使用 pip 安装第三方模块时会安装到 ~/.pyenv/versions/xxx 下,不会和系统模块发生冲突;
  • 使用 pip 安装模块后,可能需要执行 pyenv rehash 更新数据库。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK