Mac managing Multiple Python Versions With pyenv 【 mac pyenv 管理多个python 版本 】

2023-12-19 12:36

本文主要是介绍Mac managing Multiple Python Versions With pyenv 【 mac pyenv 管理多个python 版本 】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 1. 简介
    • 2. 安装
      • 2.1 brew 安装 pyenv
      • 2.2 脚本安装
    • 3. pyenv 安装 Python
    • 4. 卸载 python
    • 5. 管理 python

1. 简介

Pyenv 是一个用于管理和切换多个 Python 版本的工具。它允许开发人员在同一台计算机上同时安装和使用多个不同的 Python 版本,而无需对系统进行全局更改。Pyenv 提供了一种简单的方法来切换 Python 版本,并且对于开发不同项目或在不同环境中使用不同的 Python 版本非常有用。

以下是 Pyenv 的一些主要特点和功能:

  • Python 版本管理:Pyenv 允许您方便地安装和管理多个 Python 版本。您可以选择安装官方的 Python 版本,也可以使用其他第三方实现的 Python 版本,如 PyPy。

  • 版本切换:通过 Pyenv,您可以轻松地在不同的 Python 版本之间进行切换。这对于测试和验证代码在不同 Python 版本下的运行行为非常有用。

  • 虚拟环境支持:Pyenv 可以与 Python 的虚拟环境管理工具(如 virtualenv 和 pyvenv)结合使用,为每个 Python 版本创建独立的虚拟环境。这使得在不同的项目中使用不同的 Python 版本和依赖项变得更加方便。

  • 插件系统:Pyenv 提供了一个插件系统,允许用户扩展其功能。例如,有一些插件可用于方便地安装特定的 Python 版本或提供其他附加功能。

  • 简单易用:Pyenv 的命令行界面非常简单和直观,使得安装、管理和切换 Python 版本变得容易上手

2. 安装

2.1 brew 安装 pyenv

# 更新 brew 保证下载到新版本的 pyenv
$ brew update# 安装依赖
$ brew install openssl readline sqlite3 xz zlib# 安装
$ brew install pyenv
# 卸载
$ brew uninstall pyenv

2.2 脚本安装

安装依赖

$ brew install openssl readline sqlite3 xz zlib

安装构建依赖项后,您就可以安装pyenv本身了。我建议使用 pyenv-installer 项目:

curl https://pyenv.run | bash

输出:

 curl https://pyenv.run | bash% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100   270  100   270    0     0     70      0  0:00:03  0:00:03 --:--:--    70
Cloning into '/Users/zongxun/.pyenv'...
remote: Enumerating objects: 1185, done.
remote: Counting objects: 100% (1185/1185), done.
remote: Compressing objects: 100% (675/675), done.
remote: Total 1185 (delta 692), reused 657 (delta 377), pack-reused 0
Receiving objects: 100% (1185/1185), 589.16 KiB | 479.00 KiB/s, done.
Resolving deltas: 100% (692/692), done.
Cloning into '/Users/zongxun/.pyenv/plugins/pyenv-doctor'...
remote: Enumerating objects: 11, done.
remote: Counting objects: 100% (11/11), done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 11 (delta 1), reused 5 (delta 0), pack-reused 0
Receiving objects: 100% (11/11), 38.72 KiB | 535.00 KiB/s, done.
Resolving deltas: 100% (1/1), done.
Cloning into '/Users/zongxun/.pyenv/plugins/pyenv-update'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 10 (delta 1), reused 5 (delta 0), pack-reused 0
Receiving objects: 100% (10/10), done.
Resolving deltas: 100% (1/1), done.
Cloning into '/Users/zongxun/.pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 63, done.
remote: Counting objects: 100% (63/63), done.
remote: Compressing objects: 100% (56/56), done.
remote: Total 63 (delta 11), reused 27 (delta 0), pack-reused 0
Receiving objects: 100% (63/63), 40.25 KiB | 502.00 KiB/s, done.
Resolving deltas: 100% (11/11), done.WARNING: seems you still have not added 'pyenv' to the load path.# Load pyenv automatically by appending
# the following to
# ~/.bash_profile if it exists, otherwise ~/.profile (for login shells)
# and ~/.bashrc (for interactive shells) :export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"# Restart your shell for the changes to take effect.# Load pyenv-virtualenv automatically by adding
# the following to ~/.bashrc:eval "$(pyenv virtualenv-init -)"

这将安装pyenv以及一些有用的插件:

  • pyenv:实际的pyenv应用程序
  • pyenv-virtualenv:pyenv 和虚拟环境的插件
  • pyenv-update: 更新插件pyenv
  • pyenv-doctor:用于验证是否安装了pyenv和构建依赖项的插件
  • pyenv-which-ext:自动查找系统命令的插件

注意:上述命令与下载pyenv-installer脚本并运行它的效果相同本地。因此,如果您想确切地了解正在运行的内容,可以自行查看该文件。或者,如果您确实不想运行脚本,可以查看手动安装说明。

~/.zshrc 添加以上内容:

$ vim ~/.zshrc 
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

然后

exec "$SHELL" # Or just restart your terminal

3. pyenv 安装 Python

查看可安装列表

pyenv install --list 

可用的CPython 3.6 到 3.8

pyenv install --list | grep " 3\.[678]"

查看所有 Jython 版本

$ pyenv install --list | grep "jython"jython-devjython-2.5.0jython-2.5-devjython-2.5.1jython-2.5.2jython-2.5.3jython-2.5.4-rc1jython-2.7.0jython-2.7.1jython-2.7.2

安装 3.12.1

pyenv install 3.12.1

安装 3.12.1并显示安装过程

pyenv install -v 3.12.1

最后正常输出如下显示安装成功:

......
Successfully installed pip-23.2.1
/var/folders/0_/3h6j4mkd2156rcrkqzj3b9600000gn/T/python-build.20231218163320.47316 ~
~
Installed Python-3.12.1 to /Users/zongxun/.pyenv/versions/3.12.1

在终端安装也许会卡住,例如:

$ pyenv install -v 3.12.1
python-build: use openssl@3 from homebrew
python-build: use readline from homebrew
/var/folders/0_/3h6j4mkd2156rcrkqzj3b9600000gn/T/python-build.20231218161915.46244 ~
Downloading Python-3.12.1.tar.xz...
-> https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tar.xz

可以先浏览器下载下来,再将包放到安装的默认位置(~/.pyenv/versions/),再执行安装pyenv install -v 3.12.1

已安装的位置

$ ls ~/.pyenv/versions/
3.12.1

4. 卸载 python

您的所有版本都将位于此处。这很方便,因为删除这些版本很简单:

$ rm -rf ~/.pyenv/versions/3.12.1

当然pyenv还提供了卸载特定Python版本的命令:

$ pyenv uninstall 3.12.1

5. 管理 python

检查您有哪些可用的 Python 版本:

$ pyenv versions
* system (set by /Users/zongxun/.pyenv/version)3.10.133.12.1
  • 表示 system Python 版本当前处于活动状态。您还会注意到,这是由根 pyenv 目录中的文件设置的。这意味着,默认情况下,您仍在使用系统 Python:
$ python3 -V
Python 3.9.6
$  which python3
/Users/zongxun/.pyenv/shims/python3

如果您想使用版本 3.10.13,则可以使用global 命令:

$ pyenv global 3.10.13
$ python -V
Python 3.10.13

python 版本从 3.9.6 切换为 3.10.13了。

测试命令

python -m test

这将启动大量内部 Python 测试来验证您的安装。您可以轻松地观看测试通过。

如果您想返回到默认的 Python 系统版本,您可以运行以下命令:

$ pyenv global system
$ python -V
Python 3.9.6

参考:

  • Python 官网
  • 官方 pyenv Github 下载
  • https://realpython.com/intro-to-pyenv/

这篇关于Mac managing Multiple Python Versions With pyenv 【 mac pyenv 管理多个python 版本 】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/512173

相关文章

如何使用 Python 读取 Excel 数据

《如何使用Python读取Excel数据》:本文主要介绍使用Python读取Excel数据的详细教程,通过pandas和openpyxl,你可以轻松读取Excel文件,并进行各种数据处理操... 目录使用 python 读取 Excel 数据的详细教程1. 安装必要的依赖2. 读取 Excel 文件3. 读

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

利用Python调试串口的示例代码

《利用Python调试串口的示例代码》在嵌入式开发、物联网设备调试过程中,串口通信是最基础的调试手段本文将带你用Python+ttkbootstrap打造一款高颜值、多功能的串口调试助手,需要的可以了... 目录概述:为什么需要专业的串口调试工具项目架构设计1.1 技术栈选型1.2 关键类说明1.3 线程模

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Python Transformers库(NLP处理库)案例代码讲解

《PythonTransformers库(NLP处理库)案例代码讲解》本文介绍transformers库的全面讲解,包含基础知识、高级用法、案例代码及学习路径,内容经过组织,适合不同阶段的学习者,对... 目录一、基础知识1. Transformers 库简介2. 安装与环境配置3. 快速上手示例二、核心模

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

python实现svg图片转换为png和gif

《python实现svg图片转换为png和gif》这篇文章主要为大家详细介绍了python如何实现将svg图片格式转换为png和gif,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录python实现svg图片转换为png和gifpython实现图片格式之间的相互转换延展:基于Py

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.