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

2023-12-21 18:01

本文主要是介绍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/520976

相关文章

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

python常见环境管理工具超全解析

《python常见环境管理工具超全解析》在Python开发中,管理多个项目及其依赖项通常是一个挑战,下面:本文主要介绍python常见环境管理工具的相关资料,文中通过代码介绍的非常详细,需要的朋友... 目录1. conda2. pip3. uvuv 工具自动创建和管理环境的特点4. setup.py5.

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

Python UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以