当前位置:首页 > 科技  > 软件

管理众多Python版本的神器:Pyenv

来源: 责编: 时间:2024-01-22 17:26:01 155观看
导读译者 | 布加迪审校 | 重楼想要在不破坏开发环境的情况下,在上午尝试最新Python版本的新特性,在午休时间浏览遗留的Python代码库吗?Pyenv可以帮这个忙。使用Pyenv,您可以安装Python版本,在不同版本之间切换,并删除不再需要的

译者 | 布加迪SN828资讯网——每日最新资讯28at.com

审校 | 重楼SN828资讯网——每日最新资讯28at.com

SN828资讯网——每日最新资讯28at.com

想要在不破坏开发环境的情况下,在上午尝试最新Python版本的新特性,在午休时间浏览遗留的Python代码库吗Pyenv可以这个忙。使用Pyenv,您可以安装Python版本,在不同版本之间切换,并删除不再需要的版本。SN828资讯网——每日最新资讯28at.com

本教程介绍了Pyenv的安装和使用SN828资讯网——每日最新资讯28at.com

安装Pyenv

第一步是安装Pyenv。我用的是LinuxUbuntu 23.01。如果您使用Linux系统,安装Pyenv的最简单方法是运行以下curl命令SN828资讯网——每日最新资讯28at.com

$ curl https://pyenv.run | bash

这将使用pyenv-installer安装PyenvSN828资讯网——每日最新资讯28at.com

安装完成后,系统提示您完成shell环境的设置以使用Pyenv。为此,可以将以下命令添加到~/.bashrc文件SN828资讯网——每日最新资讯28at.com

SN828资讯网——每日最新资讯28at.com

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrcecho 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrcecho 'eval "$(pyenv init -)"' >> ~/.bashrc

已准备好开始使用Pyenv!SN828资讯网——每日最新资讯28at.com

注意如果使用MacWindows系统,查看有关如何安装Pyenv的详细说明https://github.com/pyenv/pyenv#installation。在Windows上,您需要在Windows Subsystem for LinuxWSL)中安装PyenvSN828资讯网——每日最新资讯28at.com

使用Pyenv安装Python版本

已经安装了Pyenv,可以通过运行pyenv install命令来安装特定的Python版本,像这样SN828资讯网——每日最新资讯28at.com

SN828资讯网——每日最新资讯28at.com

$ pyenv install version

执行以下命令查看已安装的Python版本列表SN828资讯网——每日最新资讯28at.com

$ pyenv versions* system (set by /home/balapriya/.pyenv/version)

还没有安装任何新版本,所以Python的唯一版本是系统版本,这里是Python 3.11SN828资讯网——每日最新资讯28at.com

$ python3 -versionPython 3.11.4

不妨尝试安装Python 3.8和3.12。试着运行这个命令来安装Python 3.8SN828资讯网——每日最新资讯28at.com

$ pyenv install 3.8

第一次尝试使用Pyenv安装特定版本的Python时,可能会遇到错误,这是由于缺少一些构建依赖项。不用担心这很容易解决!SN828资讯网——每日最新资讯28at.com

一些故障排除提示

尝试使用pyenv install命令在我的Linux发行版上安装Pyenv时,由于缺少构建依赖项,我遇到了错误。SN828资讯网——每日最新资讯28at.com

这个StackOverflow帖子包含有关为Pyenv安装所需构建依赖项的有用信息。运行以下命令以安装丢失的依赖项:SN828资讯网——每日最新资讯28at.com

$ apt-get install build-essential zlib1g-dev libffi-dev libssl-dev libbz2-dev libreadline-dev libsqlite3-dev liblzma-dev

现在,您应该能够安装Python版本不会出现任何错误SN828资讯网——每日最新资讯28at.com

$ pyenv install 3.8

注意:当您安装Python 3时默认安装最新的版本。但是以指定3.x用于安装特定的Python版本。还可以运行pyenv install --list来列出所有可以安装的Python版本,不过版本很多SN828资讯网——每日最新资讯28at.com

同样,运行pyenv install安装Python 3.12SN828资讯网——每日最新资讯28at.com

$ pyenv install 3.12

现在如果运行pyenv versions,除了系统版本外,还会看到Python 3.8和3.12SN828资讯网——每日最新资讯28at.com

$ pyenv versions* system (set by /home/balapriya/.pyenv/version)3.8.183.12.0

设置Python全局版本

使用Pyenv,您可以设置全局Python版本。顾名思义,全局版本是您在命令行使用Python时所使用的Python版本。SN828资讯网——每日最新资讯28at.com

但请注意将其设置为比较新的版本,以免在运行使用较新Python版本的项目时出现错误。SN828资讯网——每日最新资讯28at.com

比如说,不妨看看如果将全局版本设置为Python 3.8.18会发生什么。SN828资讯网——每日最新资讯28at.com

$ pyenv global 3.8.18

创建一个项目文件夹。在其中,用以下代码创建一个main.py文件SN828资讯网——每日最新资讯28at.com

# main.pydef handle_status_code(status_code): match status_code: case 200: print(f"Success! Status code: {status_code}") case 404: print(f"Not Found! Status code: {status_code}") case 500: print(f"Server Error! Status code: {status_code}") case _: print(f"Unhandled status code: {status_code}")status_code = 404 # oversimplification, yes. handle_status_code(status_code)

所见,这段代码使用了Python 3.10中引入的match-case语句。因此,需要Python 3.10或更高版本才能成功运行此代码。如果试着运行脚本,会得到以下错误SN828资讯网——每日最新资讯28at.com

File "main.py", line 2 match status_code:  ^SyntaxError: invalid syntax

在本文例子中,系统Python是3.11版本,比较新。所以我可以将全局版本设置为系统Python版本,如下所示SN828资讯网——每日最新资讯28at.com

$ pyenv global system

现在运行同一个脚本时,应该得到以下输出SN828资讯网——每日最新资讯28at.com

Output >>>Not Found! Status code: 404

如果您的系统Python是旧版本,比如Python 3.6或更早版本,安装新版的Python并将其设置为全局版本将大有帮助。SN828资讯网——每日最新资讯28at.com

为项目设置本地Python版本

当您想要处理使用早期Python版本的项目时,希望安装该版本以避免任何错误(比如不再支持的方法调用SN828资讯网——每日最新资讯28at.com

假设您在处理项目A时使用Python 3.8,处理项目B时使用Python 3.10或更高版本,在这种情况下,可以在项目A的目录中设置本地Python版本,如下所示:SN828资讯网——每日最新资讯28at.com

$ pyenv local 3.8.18

可以运行python --version来检查项目目录Python版本SN828资讯网——每日最新资讯28at.com

$ python --versionPython 3.8.18

这在处理较旧的Python代码库时特别有用。SN828资讯网——每日最新资讯28at.com

卸载Python版本

如果不再需要Python版本,可以通过运行pyenv uninstall命令卸载它。假设不再需要Python 3.8.18,那么可以通过运行以下命令来卸载它SN828资讯网——每日最新资讯28at.com

$ pyenv uninstall 3.8.18

您应该在终端看到类似的输出SN828资讯网——每日最新资讯28at.com

pyenv: remove /home/balapriya/.pyenv/versions/3.8.18? [y|N] ypyenv: 3.8.18 uninstalled

结语

但愿这篇关于Pyenv的入门教程对有所帮助。总结几个最常见的命令以便快速查询:SN828资讯网——每日最新资讯28at.com

命令SN828资讯网——每日最新资讯28at.com

功能SN828资讯网——每日最新资讯28at.com

pyenv versionsSN828资讯网——每日最新资讯28at.com

列出目前已安装的所有Python版本SN828资讯网——每日最新资讯28at.com

pyenv install listSN828资讯网——每日最新资讯28at.com

列出可以安装的所有Python版本SN828资讯网——每日最新资讯28at.com

pyenv install 3.xSN828资讯网——每日最新资讯28at.com

安装Python 3.x的最新版SN828资讯网——每日最新资讯28at.com

pyenv install 3.x.ySN828资讯网——每日最新资讯28at.com

安装Python 3.x的版本ySN828资讯网——每日最新资讯28at.com

pyenv global 3.xSN828资讯网——每日最新资讯28at.com

将Python 3.x设为全局Python版本SN828资讯网——每日最新资讯28at.com

pyenv local 3.xSN828资讯网——每日最新资讯28at.com

将您项目的本地Python版本设为3.xSN828资讯网——每日最新资讯28at.com

pyenv uninstall 3.x.ySN828资讯网——每日最新资讯28at.com

卸载Python 3.x的版本SN828资讯网——每日最新资讯28at.com

Docker是一个很好的选择,可以让本地开发变得轻松,不用担心依赖冲突但是每需要处理新项目使用Docker或其他容器化解决方案可能大材小用SN828资讯网——每日最新资讯28at.com

因此,我认为能够在命令行中安装、管理和切换Python版本仍然有帮助。您还可以了解pyenv-virtualenv插件以创建和管理虚拟环境。SN828资讯网——每日最新资讯28at.com

原文标题:Too Many Python Versions to Manage? Pyenv to the Rescue,作者:Bala Priya CSN828资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-66206-0.html管理众多Python版本的神器:Pyenv

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 牢记这 16 个 SpringBoot 扩展接口,写出更加漂亮的代码

下一篇: 截止2024年,薪资排名第一,并非 Rust!

标签:
  • 热门焦点
Top