翻译: Pyenv管理Python版本从入门到精通一

发布时间:2024年01月17日

在这里插入图片描述

你是否经常在管理系统上多个Python版本时遇到困难?这可能是一个艰巨的任务,尤其是在处理需要不同Python版本的不同项目时。

但别担心,有一个解决方案:pyenv。就像一个熟练的杂技演员,pyenv可以轻松处理多个Python版本,让你无缝切换。

这份全面的指南旨在引导你了解如何安装、使用以及掌握pyenv,有效地管理你的Python环境。无论你是刚开始入门的初学者,还是寻找更高效管理Python版本的经验丰富的开发者,这份指南都能满足你的需求。

那么,让我们深入pyenv的世界,让Python版本管理变得轻而易举吧!

1. 什么是Pyenv,我该如何使用它?

Pyenv是一个强大的工具,它让你能够轻松地在多个Python版本之间切换。当你在处理需要不同Python版本的不同项目时,它就像救星一样。你可以在macOS上通过Homebrew或在Linux上通过GitHub来安装它,然后使用pyenv install命令来安装特定版本的Python。以下是一个简单的例子:

pyenv install 3.11.0

# Output:
# Downloading Python-3.11.0.tar.xz...
# -> https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz
# Installing Python-3.11.0...
# Installed Python-3.11.0 to /home/username/.pyenv/versions/3.11.0

pyenv global 3.11.0

# Output:
# Python 3.11.0

在这个例子中,我们首先使用pyenv install命令安装了Python 3.11.0。然后,我们通过pyenv global命令切换到这个版本。输出结果确认Python 3.11.0现在是激活版本。

2. 开始使用 Pyenv

要开始使用 pyenv,您首先需要在系统上安装它。安装过程根据您的操作系统略有不同。以下是您在 macOS 和 Linux 上进行安装的方法:

2.1 在macOS上安装Pyenv

在macOS上,使用Homebrew安装pyenv是最简单的方法。如果你还没有安装Homebrew,可以通过在终端运行以下命令来进行安装:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Output:
# ==> This script will install:
# /usr/local/bin/brew
# /usr/local/share/doc/homebrew
# /usr/local/share/man/man1/brew.1
# /usr/local/share/zsh/site-functions/_brew
# /usr/local/etc/bash_completion.d/brew
# /home/linuxbrew/.linuxbrew/bin/brew

一旦你安装了Homebrew,你可以通过运行以下命令来安装pyenv

brew install pyenv
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.3.35
Already downloaded: /Users/zgpeace/Library/Caches/Homebrew/downloads/190509c288421dac1312fb8947361826aaf28754d1a990fb013c7ae5f78af4ed--pyenv-2.3.35.bottle_manifest.json
==> Fetching pyenv
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:53b6fa514e3d
Already downloaded: /Users/zgpeace/Library/Caches/Homebrew/downloads/f51d9b79b44b35b74911f79d1e95730d99f0edae6a5b6a5dc30387a01d6f4541--pyenv--2.3.35.monterey.bottle.tar.gz
==> Pouring pyenv--2.3.35.monterey.bottle.tar.gz
🍺  /usr/local/Cellar/pyenv/2.3.35: 1,132 files, 3.4MB
==> Running `brew cleanup pyenv`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).

2.2 在 Linux 上安装 Pyenv

在 Linux 上,您可以使用 GitHub 上的 pyenv-installer 脚本来安装 pyenv。在终端中运行以下命令:

curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash

# Output:
# Cloning https://github.com/pyenv/pyenv.git to /home/username/.pyenv
# Cloning https://github.com/pyenv/pyenv-doctor.git to /home/username/.pyenv/plugins/pyenv-doctor
# Cloning https://github.com/pyenv/pyenv-installer.git to /home/username/.pyenv/plugins/pyenv-installer

2.3 安装和切换Python版本

一旦你安装了pyenv,你就可以用它来安装和切换Python版本。以下是你可以如何做到这一点:

要安装特定版本的Python,请使用pyenv install命令,后跟版本号。例如,要安装Python 3.11.0,你需要运行:

pyenv install 3.11

python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
Downloading Python-3.11.7.tar.xz...
-> https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tar.xz
Installing Python-3.11.7...

您可能遇到的第一个障碍是安装 pyenv 期间出现的问题。例如,安装 pyenv 后,您可能会收到“找不到命令”错误。这通常是由于 PATH 设置不正确。要解决此问题,您需要将以下行添加到 shell 的配置文件(.bashrc.zshrc 等)中:

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

然后,重新启动终端或运行 source ~/.zshrc(或 shell 的相应文件.bashrc)。

要切换到此版本,请使用pyenv global命令:

pyenv global 3.11.7

# Output:
# Python 3.11.7

就是这样!您现在已经安装了 pyenv,安装了特定版本的 Python,并切换到该版本。使用这些基本命令,您可以轻松管理多个 Python 版本。

3. 高级 Pyenv 用法

随着你对 pyenv 越来越熟悉,你会发现它提供的不仅仅是安装和在 Python 版本之间切换。它还可用于更复杂的任务,例如为特定项目设置本地 Python 版本、管理虚拟环境和处理依赖项。让我们更深入地研究 pyenv 的这些高级用法。

3.1 设置本地 Python 版本

使用 pyenv,您可以为特定项目设置本地 Python 版本。这在处理多个项目时非常有用,每个项目都需要不同的 Python 版本。这是你如何做到的:

导航到项目的目录并运行pyenv local命令,然后运行版本号。例如,若要将 Python 3.9.18
设置为项目的本地版本,请运行:

cd /path/to/your/project
pyenv local 3.9.18


# Output:
# Python 3.9.18


这将在项目的目录中创建一个 .python-version 文件,pyenv 将使用该文件来确定您在此目录中时要使用的 Python 版本。
在这里插入图片描述

4. 解决常见的 Pyenv 问题

即使使用最好的工具,您也可能会遇到问题或障碍。Pyenv 也不例外。本节将讨论您在使用 pyenv 时可能遇到的常见问题,以及它们的解决方案和解决方法。请记住,每个问题都有解决方案!

4.1 切换 Python 版本时出现的问题

另一个常见问题是无法切换 Python 版本。如果您尝试切换版本,但 pyenv 似乎忽略了您的命令,这可能是由于多种原因。一个常见的原因是忘记将 eval "$(pyenv init -)" 行添加到 shell 的配置文件.zshrc中。确保此行存在,并且是为 pyenv 添加的最后一行。

4.2 与其他工具的兼容性问题

Pyenv 有时会与其他 Python 工具(如 pipenv 或 virtualenv)发生冲突。如果您在将这些工具与 pyenv 一起使用时遇到问题,请确保为您的项目使用正确的 Python 版本。您可以使用 pyenv version进行检查。

如果您仍然遇到问题,可能值得考虑使用 pyenv-virtualenv,这是 pyenv 的扩展,可让您更有效地管理虚拟环境。

请记住,故障排除的关键是耐心和理解。您遇到的每个问题都是一个机会,可以更多地了解 pyenv 和 Python 的工作原理。祝您疑难解答愉快!

参考

https://ioflood.com/blog/pyenv/

文章来源:https://blog.csdn.net/zgpeace/article/details/135634239
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。