【学习笔记】Macbook管理多个不同的Python版本

在MacBook上管理不同项目的不同Python版本,可以使用多种方法。以下是一些常见的方法:

1. 使用 pyenv

pyenv 是一个非常流行的工具,可以让你轻松安装和切换多个Python版本。以下是安装和使用 pyenv 的步骤:

安装 pyenv
  1. 安装依赖

    sh复制

    brew update
    brew install pyenv
  2. 配置环境变量: 打开你的 ~/.zshrc~/.bash_profile 文件,添加以下内容:

    sh复制

    export PATH="$HOME/.pyenv/bin:$PATH"
    eval "$(pyenv init --path)"
    eval "$(pyenv virtualenv-init -)"
  3. 如果失败

当你在执行 `source ~/.bash_profile` 命令时,出现 `pyenv: no such command 'virtualenv-init'` 错误,通常意味着 `pyenv-virtualenv` 插件没有正确安装或配置。以下是解决这个问题的步骤:

### 1. 确认 `pyenv` 是否已正确安装
首先,确保 `pyenv` 本身已经正确安装。在终端中运行以下命令:
```bash
pyenv --version
```
如果看到版本信息,说明 `pyenv` 已经正确安装。

### 2. 安装 `pyenv-virtualenv` 插件
如果 `pyenv` 已经安装,但 `pyenv-virtualenv` 插件没有安装,你需要安装这个插件。可以使用 Homebrew 来安装:
```bash
brew install pyenv-virtualenv
```
安装完成后,需要将初始化脚本添加到你的 shell 配置文件中。假设你使用的是 `bash`,可以将以下两行添加到 `~/.bash_profile` 文件中:
```bash
if command -v pyenv 1>/dev/null 2>&1; then eval "$(pyenv init -)"; fi
eval "$(pyenv virtualenv-init -)"
```
如果你使用的是 `zsh`,则将上述内容添加到 `~/.zshrc` 文件中。

### 3. 重新加载配置文件
添加完上述内容后,需要重新加载配置文件,使更改生效。在终端中运行:
```bash
source ~/.bash_profile
```
或者,如果你使用的是 `zsh`,运行:
```bash
source ~/.zshrc
```
也可以直接关闭并重新打开终端。

### 4. 检查 PATH 变量
确保 `pyenv` 的路径已经正确添加到 `PATH` 变量中。你可以通过以下命令检查:
```bash
echo $PATH
```
确保输出中包含 `~/.pyenv/shims`。如果不存在,可以将以下内容添加到 `~/.bash_profile` 或 `~/.zshrc` 文件中:
```bash
export PATH="$HOME/.pyenv/shims:$PATH"
```
然后重新加载配置文件。

### 5. 验证 `pyenv-virtualenv` 是否安装成功
最后,验证 `pyenv-virtualenv` 是否已经正确安装。运行以下命令:
```bash
pyenv commands
```
如果 `virtualenv` 命令出现在列表中,说明 `pyenv-virtualenv` 已经正确安装。

按照上述步骤操作后,你应该能够正常使用 `pyenv` 和 `virtualenv` 命令了。如果问题仍然存在,建议检查 `pyenv` 和 `pyenv-virtualenv` 的安装日志,确保没有错误信息。
 

  1. 重新加载配置文件

    sh复制

    source ~/.zshrc
使用 pyenv 安装和切换Python版本
  1. 安装Python 3.7

    sh复制

    pyenv install 3.7.15
  2. 设置全局Python版本

    sh复制

    pyenv global 3.7.15
  3. 在项目中使用特定版本: 在项目目录下,创建一个 .python-version 文件,内容为 3.7.15

    sh复制

    echo 3.7.15 > .python-version

    进入项目目录后,pyenv 会自动切换到指定的Python版本。

2. 使用 conda

conda 是一个流行的包管理和环境管理工具,特别适合数据科学和机器学习项目。以下是安装和使用 conda 的步骤:

安装 conda
  1. 下载并安装Miniconda: 访问 Miniconda 官网,下载适合Mac的安装包并安装。

  2. 初始化 conda

    sh复制

    conda init zsh
  3. 重新加载配置文件

    sh复制

    source ~/.zshrc
使用 conda 创建和管理环境
  1. 创建新的环境

    sh复制

    conda create -n myproject python=3.7
  2. 激活环境

    sh复制

    conda activate myproject
  3. 安装依赖

    sh复制

    conda install numpy pandas
  4. 退出环境

    sh复制

    conda deactivate

3. 使用 virtualenvvirtualenvwrapper

virtualenv 是一个轻量级的虚拟环境管理工具,virtualenvwrapper 提供了一些方便的命令来管理虚拟环境。以下是安装和使用 virtualenvvirtualenvwrapper 的步骤:

安装 virtualenvvirtualenvwrapper
  1. 安装 virtualenv

    sh复制

    pip install virtualenv
  2. 安装 virtualenvwrapper

    sh复制

    pip install virtualenvwrapper
  3. 配置环境变量: 打开你的 ~/.zshrc~/.bash_profile 文件,添加以下内容:

    sh复制

    export WORKON_HOME=$HOME/.virtualenvs
    export PROJECT_HOME=$HOME/Devel
    source /usr/local/bin/virtualenvwrapper.sh
  4. 重新加载配置文件

    sh复制

    source ~/.zshrc
使用 virtualenvwrapper 创建和管理环境
  1. 创建新的环境

    sh复制

    mkvirtualenv myproject -p /usr/bin/python3.7
  2. 激活环境

    sh复制

    workon myproject
  3. 安装依赖

    sh复制

    pip install numpy pandas
  4. 退出环境

    sh复制

    deactivate

4. 使用 poetry

poetry 是一个现代的包管理和依赖管理工具,可以自动创建虚拟环境。以下是安装和使用 poetry 的步骤:

安装 poetry
  1. 安装 poetry

    sh复制

    curl -sSL https://install.python-poetry.org | python3 -
  2. 配置环境变量: 打开你的 ~/.zshrc~/.bash_profile 文件,添加以下内容:

    sh复制

    export PATH="$HOME/.poetry/bin:$PATH"
  3. 重新加载配置文件

    sh复制

    source ~/.zshrc
使用 poetry 创建和管理项目
  1. 创建新的项目

    sh复制

    poetry new myproject
  2. 进入项目目录

    sh复制

    cd myproject
  3. 安装依赖

    sh复制

    poetry add numpy pandas
  4. 激活虚拟环境

    sh复制

    poetry shell
  5. 退出虚拟环境

    sh复制

    exit

总结

  • pyenv:适合需要管理多个Python版本的场景。

  • conda:适合数据科学和机器学习项目,提供丰富的科学计算包。

  • virtualenvvirtualenvwrapper:轻量级,适合简单的项目管理。

  • poetry:现代的包管理工具,自动创建虚拟环境,适合新项目。

选择适合你项目需求的工具,可以让你更高效地管理不同项目的不同Python版本。希望这些信息对你有帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/893039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS 的基础知识及应用

前言 CSS(层叠样式表)是网页设计和开发中不可或缺的一部分。它用于描述网页的视觉表现,使页面不仅实现功能,还能提供吸引人的用户体验。本文将介绍 CSS 的基本概念、语法、选择器及其在提升网页美观性方面的重要性。 什么是 CSS&…

Web开发 -前端部分-CSS-2

一 长度单位 代码实现&#xff1a; <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document<…

Linux shell zip 命令实现不切换当前终端的工作目录打包另一个路径下的文件和文件夹

如图&#xff0c;我想在当前目录 ~/Bypasser 下打包 src 文件夹&#xff0c;使得生成的 zip 压缩包中具有 src 文件夹下的所有文件夹、所有文件夹中的所有子项目、所有文件&#xff0c;保留层次结构但压缩包中最外面不包含 src 这一层。执行命令时&#xff0c;不要改变当前终端…

QT跨平台应用程序开发框架(3)—— 信号和槽

目录 一&#xff0c;基本概念 二&#xff0c;connect函数使用 2.1 connect 2.2 Qt内置信号和槽 2.3 一些细节 三&#xff0c;自定义信号和槽 3.1 自定义槽函数 3.2 自定义信号 3.3 带参数的信号槽 四&#xff0c;信号和槽的意义 五&#xff0c;信号和槽断开连接 六&…

聊聊如何实现Android 放大镜效果

一、前言 很久没有更新Android 原生技术内容了&#xff0c;前些年一直在做跨端方向开发&#xff0c;最近换工作用重新回到原生技术&#xff0c;又回到了熟悉但有些生疏的环境&#xff0c;真是感慨万分。 近期也是因为准备做地图交互相关的需求&#xff0c;功能非常复杂&#x…

一、1-2 5G-A通感融合基站产品及开通

1、通感融合定义和场景&#xff08;阅读&#xff09; 1.1通感融合定义 1.2通感融合应用场景 2、通感融合架构和原理&#xff08;较难&#xff0c;理解即可&#xff09; 2.1 感知方式 2.2 通感融合架构 SF&#xff08;Sensing Function&#xff09;&#xff1a;核心网感知控制…

golang标准库path/filepath使用示例

文章目录 前言一、常用方法示例1.将相对路径转换为绝对路径2.获取路径中最后一个元素3.获取路径中除去最后一个元素的部分4.路径拼接5.将路径拆分为目录和文件名两部分6.返回一个相对路径7.文件路径遍历8.根据文件扩展名过滤文件9.使用正则表达式进行路径匹配 前言 path/filep…

HBase实训:纸币冠字号查询任务

一、实验目的 1. 理解分布式数据存储系统HBase的架构和工作原理。 2. 掌握HBase表的设计原则&#xff0c;能够根据实际业务需求设计合理的表结构。 3. 学习使用HBase Java API进行数据的插入、查询和管理。 4. 实践分布式数据存储系统在大数据环境下的应用&#xff0c;…

HarmonyOS NEXT应用开发边学边玩系列:从零实现一影视APP (三、影视搜索页功能实现)

在HarmonyOS NEXT开发环境中&#xff0c;可以使用nutpi/axios库来简化网络请求的操作。本文将展示如何使用HarmonyOS NEXT框架和nutpi/axios库&#xff0c;从零开始实现一个简单的影视APP&#xff0c;主要关注影视搜索页的功能实现。 为什么选择nutpi/axios&#xff1f; nutpi…

天机学堂3-ES+Caffeine

文章目录 day05-问答系统表 用户端分页查询问题目标效果代码实现 3.6.管理端分页查询问题ES相关 管理端互动问题分页实现三级分类3.6.5.2.多级缓存3.6.5.3.CaffeineTODO&#xff1a;使用Caffeine作为本地缓存&#xff0c;另外使用redis或者memcache作为分布式缓存&#xff0c;构…

重拾Python学习,先从把python删除开始。。。

自己折腾就是不行啊&#xff0c;屡战屡败&#xff0c;最近终于找到前辈教我 第一步 删除Python 先把前阵子折腾的WSL和VScode删掉。还是得用spyder&#xff0c;跟matlab最像&#xff0c;也最容易入手。 从VScode上搞python&#xff0c;最后安装到appdata上&#xff0c;安装插…

智能新浪潮:亚马逊云科技发布Amazon Nova模型

在2024亚马逊云科技re:Invent全球大会上&#xff0c;亚马逊云科技宣布推出新一代基础模型Amazon Nova&#xff0c;其隶属于Amazon Bedrock&#xff0c;这些模型精准切入不同领域&#xff0c;解锁多元业务可能&#xff0c;为人工智能领域带来革新。 带你认识一起了解Amazon Nova…

flutter 装饰类【BoxDecoration】

装饰类 BoxDecoration BoxDecoration 是 Flutter 中用于控制 Container 等组件外观的装饰类&#xff0c;它提供了丰富的属性来设置背景、边框、圆角、阴影等样式。 BoxDecoration 的主要属性 1.color 背景颜色。类型&#xff1a;Color?示例&#xff1a; color: Colors.blu…

Datawhale-self-llm-Phi-4 Langchain接入教程

本项目是一个围绕开源大模型、针对国内初学者、基于 AutoDL 平台的中国宝宝专属大模型教程&#xff0c;针对各类开源大模型提供包括环境配置、本地部署、高效微调等技能在内的全流程指导&#xff0c;简化开源大模型的部署、使用和应用流程&#xff0c;让更多的普通学生、研究者…

某讯一面,感觉问Redis的难度不是很大

前不久&#xff0c;有位朋友去某讯面试&#xff0c;他说被问到了很多关于 Redis 的问题&#xff0c;比如为什么用 Redis 作为 MySQL 的缓存&#xff1f;Redis 中大量 key 集中过期怎么办&#xff1f;如何保证缓存和数据库数据的一致性&#xff1f;我将它们整理出来&#xff0c;…

Python基于Django的图像去雾算法研究和系统实现(附源码,文档说明)

博主介绍&#xff1a;✌IT徐师兄、7年大厂程序员经历。全网粉丝15W、csdn博客专家、掘金/华为云//InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&#x1f3…

【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)

本文项目编号 T 141 &#xff0c;文末自助获取源码 \color{red}{T141&#xff0c;文末自助获取源码} T141&#xff0c;文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…

NVIDIA发布个人超算利器project digital,标志着ai元年的开启

上图NVIDIA公司创始人兼首席执行官 黄仁勋&#xff08;Jensen Huang&#xff09; 这些年被大家熟知的赛博朋克风格一直都是未来的代言词&#xff0c;可以承载人类记忆的芯片&#xff0c;甚至能独立思考的仿生人&#xff0c;现在&#xff0c;随着NVIDIA的project digital发布之后…

海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”

2024年12月27日&#xff0c;粤港澳大湾区AI领袖峰会在深圳成功举办&#xff0c;大会表彰了在人工智能技术创新、应用实践和产业发展等方面取得优异成绩的企业和个人&#xff0c;深圳海云安网络安全技术有限公司开发者安全智能助手D10荣膺“AI标杆产品”称号。同时&#xff0c;公…

第23篇 基于ARM A9处理器用汇编语言实现中断<五>

Q&#xff1a;怎样修改HPS Timer 0定时器产生的中断周期&#xff1f; A&#xff1a;在上一期实验的基础上&#xff0c;可以修改按键中断服务程序&#xff0c;实现红色LED上的计数值递增的速率&#xff0c;主程序和其余代码文件不用修改。 实现以下功能&#xff1a;按下KEY0…