文章插图
如果你在 macOS 上运行的项目需要没有安装的 Python 版本,请试试 pyenv 。
- 来源:https://linux.cn/article-12241-1.html
- 作者:Matthew Broberg
- 译者:geekpi
即使对于有经验的开发人员,管理本地 Python 开发环境仍然是一个挑战 。尽管有详细的 软件包管理策略,但仍需要采取另外的步骤来确保你在需要时运行所需的 Python 版本 。
为什么 Python 版本重要?起初这是一个奇怪的概念,但是编程语言会像其他任何软件一样发生变化 。它们有错误、修复和更新,就像你喜欢的 API 和任何其他软件一样 。同样,不同的发行版由称为 语义化版本 的三位数标识 。
pic.twitter.com/yt1Z2439W8多年来,Python 2 是该语言的常用主要版本 。在 2020 年 1 月,Python 2 到达最后寿命,此后,Python 的核心维护者将仅支持 Python 3 。Python 3 稳步发展,并定期发布新更新 。对我来说定期获取这些更新很重要 。
— Denny Perez (@dennyperez18) May 28, 2019
最近,我试图在 macOS 上运行一个依赖于 Python 3.5.9 的项目,而我的系统上并没有安装这个版本 。我认为 Python 包管理器 pip 可以安装它,但事实并非如此:
$ pip install python3.5.9Collecting 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
【如何在 Mac 上使用 pyenv 运行多个版本的 Python | Linux 中国】为了通过 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 versionssystem
如上所述,你绝对不想使用此版本( 阅读更多有关信息 ) 。现在 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。
推荐阅读
- 淘宝店有违规,很长时间了,如何重新开店 开淘宝店铺提示严重违规行为
- Java批量导入时,如何去除重复数据并返回结果?
- 冬瓜茶如何做,自制冬瓜茶的做法
- 路由器如何设置合适的信道提高WiFi速度
- 淘宝新品怎么做起来 淘宝新店铺如何运营
- 如何才能长寿,盘点百岁老人的长寿秘诀
- 国企|三本学历如何进一线城市的国企?
- 男人需要男人 如同鱼需要水
- 返潮天如何存茶泡茶,2016年为天下人做好茶熟开汤品鉴
- 茶喝多了伤肾吗,茶喝多了如何快速入睡