Pyenv  - 为特定项目安装多个Python版本

在Linux系统上管理多个版本的Python并不是一件容易的事,特别是对于初学者。 有时甚至在想要在同一台服务器上开发并运行不同Python版本的多个项目时会变得更糟。 但是,如果你使用pyenv ,这不应该是这种情况。

另请参阅如何在Linux中安装最新的Python 3.6版本

什么是Pyenv?

Pyenv是一个简单,强大且跨平台的工具,用于管理Linux系统上的多个Python版本。

  • 在每个用户的基础上切换全球Python版本。
  • 根据每个项目设置本地Python版本。
  • 管理由anaconda或virtualenv创建的虚拟环境。
  • 用环境变量覆盖Python版本。
  • 从多个Python版本搜索命令等等。

pyenv如何工作?

通常,使用单个默认版本的Python来运行所有应用程序,除非您在应用程序中明确指定要使用的版本。 但是, pyenv实现了一个简单的概念,即在安装多个版本时,使用shim (轻量级可执行文件)将命令传递给想要使用的正确Python版本。

这些垫片pyenv插入到PATH前面的目录中。 所以当你运行一个Python命令时,它会被适当的shim拦截并传递给pyenvpyenv会建立你的应用程序指定的Python版本,并将你的命令传递给合适的Python安装。 这是pyenv如何运作的概述。

在本文中,我们将演示如何在Linux中安装最新版本的pyenv 我们还将演示上面列出的前三种用例。

如何在Linux中安装Pyenv

1.首先安装所有必需的软件包,以便在各自的Linux发行版中使用以下命令从源安装不同的Python版本。

------------ On Debian/Ubuntu/Linux Mint ------------ 
$ sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev
------------ On CentOS/RHEL ------------
# yum -y install epel-release
# yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel
------------ On Fedora 22+ ------------
# yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2.接下来,从其Github存储库中获取最新的pyenv源代码树,并使用以下命令将其安装到$HOME/.pyenv路径中。

$ git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3.现在您需要将环境变量PYENV_ROOT设置为指向您安装pyenv并将其导出的路径。 然后将$ PYENV_ROOT / bin添加到您的PATH中 ,像其他系统命令一样运行pyenv命令行实用程序。

您还需要通过将pyenv init添加到您的shell来启用填充以及自动填充 如图所示,在$ HOME / .bashrc bash启动文件中执行所有这些操作。

$ vim $HOME/.bashrc 

将以下行复制并粘贴到该文件的末尾。

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init -)"
fi

4.完成上述更改后,您可以获取$ HOME / .bashrc文件或重新启动shell,如图所示。

$ source $HOME/.bashrc
OR
$ exec "$SHELL"

如何在Linux中安装多个Python版本

5.此时,您应该准备好开始使用pyenv了 在安装任何Python版本之前,您可以使用此命令查看所有可用版本。

$ pynev install -l

列出多个Python版本

例如,您现在可以通过pyenv安装多个Python版本。

$ pyenv install 3.6.4
$ pyenv install 3.6.5

安装多个Python版本

7.要列出可用于pyenv的所有Python版本,请运行以下命令。 这将只显示通过pyenv本身安装的版本。

$ pyenv versions

列出已安装的Python版本

8.您可以使用以下命令检查全局Python版本,此时,默认版本应该是系统设置的版本,而不是pyenv

$ pyenv global

您可以使用pyenv命令设置全局python版本。

$ pyenv global 3.6.5
$ pyenv global

设置全局Python版本

9.现在可以基于每个项目设置本地Python版本,例如,如果项目位于$ HOME / python_projects / test中 ,则可以使用以下命令设置它的Python版本。

$ cd python_projects/test
$ pyenv local 3.6.5
$ pyenv version		#view local python version for a specific project 
OR
$ pyenv versions

为项目设置Python版本

10. Pyenv通过pyenv-virtualenv插件管理虚拟环境,它可以在Linux和其他类UNIX系统上自动管理Python的virtualenvsconda环境。

您可以使用以下命令开始安装此插件。

$ git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
$ source $HOME/.bashrc

11.现在我们将在名为project1的项目下创建名为venv_project1的测试虚拟环境,如下所示。

$ cd python_projects
$ mkdir project1
$ cd project1
$ pyenv virtualenv 3.6.5 venv_project1

创建一个虚拟环境

12.现在,当您列出所有Python版本时,您的虚拟环境以及它们的本地python版本也应列出,如截图所示。

$ pyenv versions

列出Python版本

13.要激活virtualenv ,例如venv_project1 ,请键入以下命令。

$ pyenv activate venv_project1

注意 :您可能会在第一次使用最新版本的pyenv-virtualenv插件时收到以下消息。

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

$ HOME / .bashrc文件中添加行export PYENV_VIRTUALENV_DISABLE_PROMPT = 1 ,在其中添加其他pyenv配置 ,并源文件模拟被强调的行为。

14.要禁用激活的virtualenv,请运行此命令。

$ pyenv deactivate

有关更多信息,可以使用以下命令列出所有pyenv命令。

$ pyenv commands

有关更多信息,请转至pyenv Github存储库: https//github.com/pyenv/pyenv

另请参阅如何为多个网站安装多个PHP版本

使用pyenv真的很简单。 在本指南中,我们展示了如何安装它,并演示了它在Linux系统上管理多个python版本的一些用例。 使用下面的反馈表来提出任何问题或分享你对这个工具的想法。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏