【学习笔记】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. 使用 virtualenv 和 virtualenvwrapper

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

安装 virtualenv 和 virtualenvwrapper
  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:适合数据科学和机器学习项目,提供丰富的科学计算包。

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

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

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

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

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

相关文章

redhat安装docker 24.0.7

1、下载docker镜像包 wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.7.tgz 2、解压 tar -xvf docker-24.0.7.tgz 3、解压的docker文件夹全部移动至/usr/bin目录 cd docker cp -p docker/* /usr/bin 4、注册服务 vi /usr/lib/systemd/syste…

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;不要改变当前终端…

Syncthing在ubuntu下的安装使用

以前安装这个软件的时候&#xff0c; 是在windows和mac上&#xff0c;都是图形化的安装方式&#xff0c;但是ubuntu不太一样&#xff0c;需要增加源&#xff0c;然后执行命令。安装的系统版本是2004。 参考链接1&#xff0c;主要命令包含下面几个部分&#xff1a; 第一步&…

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…

基于基础模型的下一代商业智能(BI)

IBM Cognos Analytics 长期以来一直被公认为商业智能&#xff08;BI&#xff09;领域的金标准。凭借其卓越的报告功能而闻名&#xff0c;IBM Cognos 为希望从数据中提取宝贵见解的组织提供了无与伦比的深度和灵活性。 但很多人可能不知道的是&#xff0c;Cognos Analytics 是如…

Python与PyTorch的浅拷贝与深拷贝

1.Python赋值操作的原理 在python中&#xff0c;x something&#xff0c; 这样的赋值操作&#xff0c;准确的理解是&#xff1a;给存储something建立一个索引x (即存储地址)&#xff0c; x通过访问something的存储内容&#xff0c;获得something的值。 在下面代码中&#xff…

一、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…

网络IO与IO多路复用

一、网络IO基础 系统对象&#xff1a; 网络IO涉及用户空间调用IO的进程或线程以及内核空间的内核系统。例如&#xff0c;当进行read操作时&#xff0c;会经历两个阶段&#xff1a; 等待数据准备就绪。将数据从内核拷贝到进程或线程中。 多种网络IO模型的出现原因&#xff1a;…

天机学堂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;…