python pyenv_如何在Mac上使用pyenv运行多个版本的Python

本文介绍了为何在Python开发中管理版本至关重要,特别是随着Python 2终止支持,Python 3不断更新。pyenv作为解决方案,帮助开发者在Mac上安装和设置多个Python版本。详细步骤包括通过Homebrew安装pyenv,调整PATH变量,设置全局和局部Python版本。此外,文章还提到如何查看和安装不同Python版本,以及创建虚拟环境来确保项目使用正确的Python版本。
摘要由CSDN通过智能技术生成

python pyenv

即使对于有经验的开发人员,管理本地Python开发环境仍然是一个挑战。 尽管有完善的软件包管理策略 ,但仍需要另一步骤来确保您在需要时运行所需的Python版本。

为什么Python版本重要?

起初这是一个奇怪的概念,但是编程语言会像其他任何软件一样发生变化。 它们具有错误,修复和更新,就像您喜欢的任何API和任何其他软件一样。 再次类似地,不同的发行版由称为语义版本的三位数标识。

多年来,Python 2是编程语言的常用主要版本。 在2020年1月,Python 2 终止了生命 ,从那时起,Python的核心维护者将仅支持Python 3。 Python 3稳步发展,并定期发布新更新。 这对我来说定期获取这些更新很重要。

最近,我试图在依赖于Python 3.5.9的macOS上运行一个项目,该版本尚未安装在系统上。 认为Python软件包管理器pip可以安装它似乎是合乎逻辑的*,但事实并非如此:


   
   
$ pip install python3.5.9
Collecting python3.5.9
  ERROR: Could not find a version that satisfies the requirement python3.5.9 ( from versions: none )
ERROR: No matching distribution found for python3.5.9

(上面的注释:我知道这对经验丰富的Python开发人员没有意义,但是在当时对我来说是有意义的。我会很高兴地谈论为什么我仍然认为应该这样做。)

安装和设置pyenv

幸运的是,存在pyenv可以解决这一系列复杂性。 首先,我需要安装pyenv。 我可以从源代码自己克隆和编译它,但是我更喜欢通过Homebrew软件包管理器来管理这样的软件包:

 $  brew install pyenv 

为了通过pyenv使用Python版本,必须了解shell的PATH变量。 PATH通过命令名称确定shell在哪里搜索文件。 您必须确保外壳程序能够找到pyenv运行的Python版本,而不是默认安装的版本 (通常称为system version )。 如果不更改路径,则结果如下:


   
   
$ which python
/ usr / bin / python

那是Python的系统版本。

要正确设置pyenv,可以在Bash或zsh中运行以下命令:

 $  PATH =$ ( pyenv root ) / shims: $PATH 

现在,如果您检查Python的版本,您会看到它是pyenv管理的版本:


   
   
$ which python
/ Users / my_username / .pyenv / shims / python

该export语句(PATH =)仅会对此shell实例进行更改,因此使其成为永久更改,您需要将其添加到dotfiles中。 由于zsh正式是macOS的默认外壳,因此我将重点介绍它。 将相同的语法附加到〜/ .zshrc文件中:

 $  echo 'PATH=$(pyenv root)/shims:$PATH' >> ~ / .zshrc 

现在,每次我们在zsh中运行命令时,它将使用pyenv版本的Python。 请注意,我在回声中使用了单引号,因此它不会评估和扩展命令。

.zshrc文件仅管理zsh实例,因此请确保检查您的外壳程序并编辑关联的dotfile。 如果需要仔细检查默认外壳是什么,可以运行echo $ SHELL 。 如果是zsh,请使用上面的命令。 如果使用Bash,请将〜/ .zshrc更改为〜/ .bashrc 。 如果您想了解更多信息,可以在pyenv的自述文件中深入了解路径设置

使用pyenv管理Python版本

既然pyenv已受控制,我们可以看到它只有系统Python可用:


   
   
$ pyenv versions
system

如上所述,您绝对不希望使用该版本(有关更多信息,请阅读Why )。 既然pyenv设置正确,我希望它具有我经常使用的一些不同版本的Python。

有一种方法可以通过运行pyenv install --list来查看pyenv可以访问的所有不同存储库中的所有Python版本。 这是一个冗长而庞大的清单,可能会在将来对您有所帮助。 现在,我坚持在Python下载页面上找到的每个点发布的最新版本(3.5.x或3.6.x,其中x是最新的)。 考虑到这一点,我将安装3.5.9和3.8.0:


   
   
$ pyenv install 3.5.9
$ pyenv install 3.8.0

这将需要一段时间,因此请喝点茶(或阅读上面的链接之一)。 有趣的是,输出遍历了该版本Python的下载和构建。 例如,输出显示该文件直接来自Python.org

安装完所有内容后,您可以设置默认值。 我喜欢生活在最前沿,因此将全局默认Python版本设置为最新版本:

 $  pyenv global 3.8.0 

该版本立即设置在我的shell中。 确认:


   
   
$ python -V
Python 3.8.0

我要运行的项目仅适用于Python 3.5,因此我将在本地设置该版本并确认其正在使用中:


   
   
$ pyenv local 3.5.9
$ python -V
Python 3.5.9

因为我在pyenv中使用了local选项,所以它在当前目录中添加了一个文件来跟踪该信息。


   
   
$ cat . python - version
3 . 5 . 9

现在,我终于可以为想要的项目设置虚拟环境,并确保我正在运行正确版本的Python。


   
   
$ python -m venv venv
$ source . / venv / bin / activate
( venv ) $ which python
/ Users / mbbroberg / Develop / my_project / venv / bin / python

要了解更多信息,请查看有关在Mac上管理虚拟环境的本教程。

结语

默认情况下,运行多个Python版本可能是一个挑战。 我发现以pyenv开头可以确保我拥有需要设置的Python版本,以在需要它们时运行。

您还有其他初学者或中级Python问题吗? 发表评论,我们将在以后的文章中考虑它们。

翻译自: https://opensource.com/article/20/4/pyenv

python pyenv

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值