您当前的位置:首页 > 电脑百科 > 软件技术 > 操作系统 > Mac

如何在 Mac 上使用 pyenv 运行多个版本的 Python | Linux 中国

时间:2020-05-25 10:46:14  来源:  作者:
如何在 Mac 上使用 pyenv 运行多个版本的 Python | Linux 中国

 

如果你在 macOS 上运行的项目需要没有安装的 Python 版本,请试试 pyenv。

  • 来源:https://linux.cn/article-12241-1.html
  • 作者:Matthew Broberg
  • 译者:geekpi

 

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

为什么 Python 版本重要?

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

pic.twitter.com/yt1Z2439W8

— Denny Perez (@dennyperez18) May 28, 2019

多年来,Python 2 是该语言的常用主要版本。在 2020 年 1 月,Python 2 到达最后寿命 ,此后,Python 的核心维护者将仅支持 Python 3。Python 3 稳步发展,并定期发布新更新。对我来说定期获取这些更新很重要。

最近,我试图在 macOS 上运行一个依赖于 Python 3.5.9 的项目,而我的系统上并没有安装这个版本。我认为 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 网站下载该版本,但我如何在我的 Mac 上与现有的 Python 版本一起运行?每次运行时指定 Python 解释器版本(例如 python3.7 或 python3.5)似乎很容易出错。一定会有更好的方法。

(说明:我知道这对经验丰富的 Python 开发人员没有意义,但对当时的我来说是有意义的。我很乐意谈一谈为什么我仍然认为它应该这样做。)

安装和设置 pyenv

值得庆幸的是,pyenv 可以绕开这一系列复杂的问题。首先,我需要安装 pyenv。我可以 从源码 克隆并编译它,但是我更喜欢通过 Homebrew 包管理器来管理软件包:

$ brew install pyenv

为了通过 pyenv 使用 Python 版本,必须了解 shell 的 PATH 变量。PATH 决定了 shell 通过命令的名称来搜索文件的位置。你必须确保 shell 程序能够找到通过 pyenv 运行的 Python 版本,而不是默认安装的版本(通常称为系统版本)。如果不更改路径,那么结果如下:

$ which python
/usr/bin/python

这是 Python 的系统版本。

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

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

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

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

该导出语句(PATH=)仅会对该 shell 实例进行更改,为了使更改永久生效,你需要将它添加到点文件当中。由于 zsh 是 macOS 的默认 shell,因此我将重点介绍它。将相同的语法添加到 ~/.zshrc 文件中:

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

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

.zshrc 文件仅管理 zsh 实例,因此请确保检查你的 shell 程序并编辑关联的点文件。如果需要再次检查默认 shell 程序,可以运行 echo $SHELL。如果是 zsh,请使用上面的命令。如果你使用 Bash,请将 ~/.zshrc 更改为 ~/.bashrc。如果你想了解更多信息,可以在 pyenv 的 README 中深入研究 路径设置 。

使用 pyenv 管理 Python 版本

现在 pyenv 已经可用,我们可以看到它只有系统 Python 可用:

$ pyenv versions
system

如上所述,你绝对不想使用此版本( 阅读更多有关信息 )。现在 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 问题吗? 请发表评论,我们将在以后的文章中考虑介绍它们。


via: https://opensource.com/article/20/4/pyenv

作者: Matthew Broberg 选题: lujun9972 译者: geekpi 校对: wxy

本文由 LCTT 原创编译, Linux中国 荣誉推出



Tags:pyenv   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
安装 pyenv~ % brew install pyenvUpdating Homebrew...==> Auto-updated Homebrew!Updated 1 tap (homebrew/core).==> Updated FormulaeUpdated 19 formulae.......For c...【详细内容】
2020-09-09  Tags: pyenv  点击:(77)  评论:(0)  加入收藏
如果你在 macOS 上运行的项目需要没有安装的 Python 版本,请试试 pyenv。 来源:https://linux.cn/article-12241-1.html 作者:Matthew Broberg 译者:geekpi 即使对于有经验的开...【详细内容】
2020-05-25  Tags: pyenv  点击:(85)  评论:(0)  加入收藏
▌简易百科推荐
MacBook上有不少像IINA、Downie等强大的神器,有像预览、文档编辑等基础软件,也有一些像快捷指令、Automator以及活动监视器等这样一些效率工具软件。 但是在大部分时候,Mac上自...【详细内容】
2021-12-23  Seek思科    Tags:macOS   点击:(18)  评论:(0)  加入收藏
# macos查看cpu支持的指令集sysctl -a | grep machdep.cpu.features # macos 查看cpu是否支持SSE 4.2sysctl -a | grep machdep.cpu.features | grep SSE # 查看cpu的所有...【详细内容】
2021-12-22  软件架构    Tags:指令集   点击:(10)  评论:(0)  加入收藏
12月14日,苹果正式为Mac用户带来macOS Monterey 12.1版本更新。伴随着新版系统的亮相,“同播共享”功能也来到了Mac上。现在用户可以在Mac上利用FaceTime和对方一同看剧、听音...【详细内容】
2021-12-14  手机中国    Tags:macOS   点击:(21)  评论:(0)  加入收藏
新版MacBook Pro一出来就有个“杀疯了”的头衔,无论是搭载首次为专业用户设计的超高速 M1 Pro 或 M1 Max芯片:拥有最高10核中央处理器, 32核图形处理器,让大项目做起来轻轻松松;...【详细内容】
2021-11-17  果粉iOS    Tags:MacBook   点击:(42)  评论:(0)  加入收藏
新版Mac发布后相信很多人都蠢蠢欲动,尤其据说它运行大项目时“快得十分吓人”——以MI MAX芯片为例,不但拥有 10 个中央处理器核心、最多达 32 个图形处理器核心和...【详细内容】
2021-11-15  Apper    Tags:Macbook   点击:(42)  评论:(0)  加入收藏
MacBook上有不少像IINA、Downie等强大的神器,也有一些像预览、文档编辑、截图等不可替代的基础软件和功能,但是往往这一类自带软件的功能都会存在一些限制。 另外M1 MacBook大...【详细内容】
2021-11-15  Seek思科    Tags:macOS软件   点击:(37)  评论:(0)  加入收藏
苹果新发布的 MacBook Pro 系列产品,是硬生生地给了一个免费的刘海。如果你没法忍受这个有缺陷式的设计,那就继续往下看这篇文章,它将教如何隐藏这个奇怪的刘海设计。 苹果为...【详细内容】
2021-11-09  友爱科技    Tags:MacBook Pro   点击:(96)  评论:(0)  加入收藏
你听过很多播客的内容吗?你有时也会在 Mac 上收听播客吗?或者你可能有兴趣将播客下载到 Mac 离线收听,这样你就可以在旅行或没有网络的情况下使用。 苹果发布的 Podcasts 应用...【详细内容】
2021-11-09  友爱科技    Tags:Mac   点击:(47)  评论:(0)  加入收藏
Safari 标签页分组:macOS Monterey 对 Safari 浏览器进行了一次重大更新。最直观的是,Safari 窗口的标签页颜色会根据网页的颜色进行自动变化,仿佛这个窗口都是网页的内容,带来...【详细内容】
2021-10-27  高效码农    Tags:Monterey   点击:(301)  评论:(0)  加入收藏
CleanMyMac是一款专业且高效的苹果电脑清理软件。一键智能清理功能帮助了许多Mac用户恢复电脑性能,优化运行速度。CleanMyMac不仅颜值高,功能全面,同时,它还能个性化地进行相关...【详细内容】
2021-10-25  miqimiaomiaowu923    Tags:CleanMyMac   点击:(61)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条