多版本Python管理

pyenv 是一个用于管理多个 Python 版本的工具,特别适合在同一台机器上需要使用不同版本 Python 的开发者。以下是 pyenv 的使用教程,包括安装、配置和常用命令的介绍。

1. 安装pyenv

在MacOS上,可以通过Homebrew安装pyenv

步骤:

  1. 安装Homebrew(如果尚未安装):

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

    1
    brew install pyenv
  3. 配置Shell环境
    你需要在Shell配置文件(如.bashrc, .zshrc, .bash_profile等)中添加以下内容以确保pyenv正常工作:

    1
    2
    3
    4
    echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
    echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
    echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
    echo 'eval "$(pyenv init -)"' >> ~/.zshrc

    然后,重新加载Shell配置文件:

    1
    source ~/.zshrc

2. 安装Python版本

pyenv 允许你安装任意版本的 Python,包括老版本、新版本和特定的测试版。

步骤:

  1. 列出可用的 Python 版本

    1
    pyenv install --list

    这将列出所有可以安装的Python版本。

  2. 安装特定版本的Python
    例如,要安装Python 3.9.1:

    1
    pyenv install 3.9.1

3. 设置Python版本

pyenv 允许你在全局、目录或项目中设置不同的Python版本。

步骤:

  1. 设置全局(系统范围内的)Python版本

    1
    pyenv global 3.9.1

    这将设置系统使用Python 3.9.1作为默认Python版本。

  2. 设置本地(当前目录或项目)的Python版本
    进入项目目录,并设置该目录使用的Python版本:

    1
    pyenv local 3.8.6

    这将在项目目录中创建一个.python-version文件,指示该目录使用的Python版本。

  3. 设置Shell会话的Python版本
    如果你只想在当前Shell会话中使用某个版本的Python,可以使用:

    1
    pyenv shell 3.7.9

4. 查看当前使用的Python版本

要查看pyenv正在使用的Python版本,可以使用:

1
pyenv version

这个命令会显示当前Python的版本和它是如何选择的(全局、本地或Shell)。

5. 卸载Python版本

如果你不再需要某个Python版本,可以使用以下命令卸载它:

1
pyenv uninstall 3.9.1

6. pip配合使用

每个Python版本都会有独立的pip,安装和管理Python包时,pip对应的就是你使用的那个Python版本的包管理器。例如:

1
python -m pip install numpy

7. 升级pyenv

要保持pyenv的最新状态,你可以使用Homebrew来升级:

1
2
brew update
brew upgrade pyenv

8. 常用命令总结

  • pyenv install <version>: 安装指定版本的Python。

  • pyenv uninstall <version>: 卸载指定版本的Python。

  • pyenv global <version>: 设置全局Python版本。

  • pyenv local <version>: 设置本地Python版本(针对当前目录)。

  • pyenv shell <version>: 设置当前Shell会话的Python版本。

  • pyenv versions: 列出所有已安装的Python版本。

  • pyenv version: 显示当前使用的Python版本。

  • 查看Python的完整路径

    1
    pyenv which python

    这个命令会显示当前使用的Python解释器的完整路径。

pyenv 如何指定 系统预装的 python 为全局解释器

pyenv默认会覆盖系统的Python解释器,但你可以将系统预装的Python版本设为全局解释器。具体步骤如下:

1. 查找系统预装的Python路径

在MacOS上,系统预装的Python通常位于以下路径:

  • Python 2.x 版本:/usr/bin/python
  • Python 3.x 版本:/usr/bin/python3

你可以使用以下命令确认系统Python的路径:

1
2
which python  # 对于Python 2.x
which python3 # 对于Python 3.x

2. 将系统Python设置为全局解释器

使用pyenv global命令可以将系统预装的Python版本设置为全局解释器。

步骤:

  1. 创建一个版本名称为system的Python解释器pyenv内置):

    1
    pyenv global system
  2. 验证当前使用的Python版本
    使用以下命令验证是否已经切换到系统Python:

    1
    pyenv version

    输出应类似于:

    1
    system (set by /Users/yourname/.pyenv/version)

    这表示系统预装的Python已经被设为全局解释器。

3. 确认切换成功

你可以运行以下命令,确认Python路径是否指向系统的Python版本:

1
2
python --version  # 对于Python 2.x
python3 --version # 对于Python 3.x

你也可以使用以下命令查看Python的完整路径:

1
2
pyenv which python  # 对于Python 2.x
pyenv which python3 # 对于Python 3.x

这将返回系统预装Python的路径,例如/usr/bin/python

总结

通过设置pyenv global system,你可以让pyenv使用系统预装的Python版本作为全局解释器。这样做可以避免干扰系统的默认Python环境,同时仍然可以在需要时使用pyenv管理的其他Python版本。


多版本Python管理
https://jackiedai.github.io/2024/08/20/011Python/001多版本Python管理/
Author
lingXiao
Posted on
August 20, 2024
Licensed under