pyenv快速入门

简介: 在开发Python程序的时候,有时候可能需要在不同版本的Python上进行测试。pyenv就是这么一个管理多版本Python的工具。由于在Windows中我们可以同时安装多个版本的Python,所以这里是在Linux下介绍该工具。

在开发Python程序的时候,有时候可能需要在不同版本的Python上进行测试。pyenv就是这么一个管理多版本Python的工具。由于在Windows中我们可以同时安装多个版本的Python,所以这里是在Linux下介绍该工具。

安装

首先当然是安装pyenv了,最简单的办法就是利用官方Github仓库中的安装脚本了:

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

安装脚本有可能会提示你手动把几行命令添加到shell的配置文件中。

如果你用的是zsh的话,别忘了替换命令中的bash。将来如果要删除的话,需要在.zshrc文件中删除。如果你用oh-my-zsh的话,不需要在.zshrc中添加那几行(加了也没用),而是在.zshrc中启用pyenv插件。

将来要进行更新的话:

$ pyenv update

要卸载pyenv的话更加简单,直接删除目录即可:

$ rm -fr ~/.pyenv

别忘了把.bashrc中的这几行也一并删掉:

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

工作原理

Linux环境变量

当执行命令的时候,系统会在环境变量中从左到右依次寻找匹配的命令并执行。环境变量中是一组以冒号:分隔的路径。

img_6614f43f81bb711bdffdd9625a974a5b.png
环境变量

垫片(Shims)

pyenv的工作原理其实很简单,将它自己管理的Python目录插到环境变量的最前面,这样一来系统在搜索Python的时候第一个找到的就是pyenv管理的Python环境。这个插到最前面的路径就叫做垫片(shims),当然这是在英文语境下,在中文环境下我老觉得怪怪的,反正理解意思就好。

选择Python版本

当执行pyenv命令的时候,它会按照以下顺序来决定要使用的Python版本:

  1. 使用PYENV_VERSION环境变量(如果存在). 你可以使用pyenv shell 命令来在当前shell环境中设置该环境变量.
  2. 当前目录中应用程序指定的.python-version文件(如果存在). 你可以用pyenv local 命令来修改当前目录的.python-version文件.
  3. 自底向上搜索各层上级目录,找到的第一个.python-version, 直到到达文件系统根目录.
  4. 全局的$(pyenv root)/version文件. 可以使用 pyenv global 命令来修改. 如果全局版本文件不存在, pyenv假设你使用系统安装的Python. (换句话说就是未安装pyenv时环境变量中找到的Python.)

常用命令

完整命令请参考官方文档

安装

列出所有可安装的Python版本:

pyenv install -l|--list

安装某个Python:

pyenv install <version>

卸载

卸载某个Python,-f参数指定是否强制卸载,如果强制卸载的话不会弹出提示,而且如果版本不存在的话也不会显示错误信息:

pyenv uninstall [-f|--force] <version>

versions

列出所有已安装的Python,当前使用的Python会用星号标出:

$ pyenv versions
  2.5.6
  2.6.8
* 2.7.6 (set by /home/yyuu/.pyenv/version)
  3.3.3
  jython-2.5.3
  pypy-2.2.1

global

通过写~/.pyenv/version文件的方式设置全局Python:

$ pyenv global 2.7.6

local

通过在当前目录写.python-version文件的方式设置当前目录下的Python:

pyenv local 2.7.6

当不再需要本地Python的时候,用--set来清除:

$ pyenv local --unset

shell

指定当前shell使用的Python:

$ pyenv shell pypy-2.2.1

当不再需要的时候,用--set来清除:

$ pyenv shell --unset

最后展示一下pyenv install -l的输出,可以看到,pyenv可以方便的安装大部分版本的Python,省略号表示中间有一大堆:

yitian@ubuntu:~ $ pyenv install -l
Available versions:
  2.1.3
  ...
  2.7.15
  ...
  3.6.6
  3.7.0
  3.7-dev
  3.8-dev
  activepython-2.7.14
  activepython-3.5.4
  activepython-3.6.0
  anaconda-1.4.0
  ...  
  anaconda3-5.2.0
  ironpython-dev
  ironpython-2.7.4
  ironpython-2.7.5
  ironpython-2.7.6.3
  ironpython-2.7.7
  jython-dev
  jython-2.5.0
  jython-2.5-dev
  jython-2.5.1
  jython-2.5.2
  jython-2.5.3
  jython-2.5.4-rc1
  jython-2.7.0
  jython-2.7.1
  micropython-dev
  micropython-1.9.3
  micropython-1.9.4
  miniconda-latest
  miniconda-2.2.2
  ...
  miniconda3-4.3.30
  pypy-c-jit-latest
  pypy-c-nojit-latest
  pypy-dev
  pypy-stm-2.3
  pypy-stm-2.5.1
  pypy-1.5-src
  pypy-1.5
  ...
  pypy3.5-6.0.0
  pyston-0.5.1
  pyston-0.6.0
  pyston-0.6.1
  stackless-dev
  stackless-2.7-dev
  stackless-2.7.2
  ...
  stackless-3.5.4

常见问题

用pyenv安装Python的时候可能会出现各种各样问题,例如缺少zlib、缺少ctypes模块等等。对此pyenv也有专门一个页面解决。对于我的Ubuntu 18.04虚拟机来说,安装以下一坨软件可以解决问题:

sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev libedit-dev

其他系统请查看pyenv的页面,如果有其它问题请自行搜索Stack Overflow

相关文章
|
缓存 前端开发 Linux
Composer 快速入门教程
Composer 是 PHP 是 PHP5.3 以上的一个依赖管理工具,你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会安装这些依赖的库文件
1062 0
|
2月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
534 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
7月前
|
数据采集 机器学习/深度学习 人工智能
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024
|
2月前
|
数据处理 iOS开发 MacOS
Python 虚拟环境安装使用(Anaconda 实操完整版)
【10月更文挑战第4天】Anaconda 是一个开源的 Python 发行版,集成了常用科学计算与数据处理库,并提供了方便的包管理工具 `conda`。虚拟环境则允许在同一台机器上创建多个独立的 Python 运行环境,避免库版本冲突。通过下载 Anaconda、创建与激活虚拟环境、安装软件包及管理环境,可有效支持 Python 项目开发。
369 8
|
4月前
|
运维 jenkins 网络安全
[ansible]简介安装入门
[ansible]简介安装入门
|
7月前
|
数据采集 SQL 数据挖掘
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024(1)
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024(1)
|
7月前
|
数据采集 机器学习/深度学习 人工智能
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024(3)
2024最新版Python安装教程,适合新手,赶快收藏!_python3最新版2024(3)
|
Shell 开发工具 git
Git安装与使用方法入门
Git是一个帮助开发者追踪代码变化和团队协作的工具。它记录了代码修改的历史,并允许回到过去的版本。开发者可以创建分支来独立开发新功能,而不影响主代码。团队成员可以共享代码,并轻松合并修改。Git提供了高效的工作流程和协作机制,使代码管理更简单。总之,Git是一个强大而灵活的工具,适用于个人和团队开发。
178 0
|
7月前
|
人工智能 IDE 大数据
|
7月前
|
中间件
Cmake快速入门
Cmake快速入门
98 0