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

ops/2025/1/20 19:54:53/

在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.ppmy.cn/ops/151745.html

相关文章

【STM32 USB】USB描述符

USB各种描述符的拓扑关系 每一个USB设备只有一个设备描述符,主要向主机说明设备类型、端点0最大包长、设备版本、配置数量等等。每一个USB设备至少有一个或者多个配置描述符,但是主机同一时间只能选择某一种配置。标准配置描述符主要向主机描述当前配置下…

go chan底层分析

go chan底层分析 底层源码hchanmakechan 方法 环形队列阻塞机制向管道写数据流程图源码 从管道读数据流程图源码 关闭通道 底层源码 hchan type hchan struct {qcount uint // 当前队列中剩余元素个数dataqsiz uint // 环形队列长度,即可以…

C#如何获取电脑中的端口号和硬件信息

我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。 那么如果我们使用C#编写软件时候,如何获取到串口的硬件信息呢? 思路就是通过读取设备管理器里的条目来实现,我这里给大家…

仿 RabbitMQ 的消息队列1(实战项目)

一,消息队列的背景知识 我们以前学过阻塞队列,其实阻塞队列和消息队列的原理差不多。 在实际的后端开发中, 尤其是分布式系统⾥, 跨主机之间使⽤⽣产者消费者模型, 也是⾮常普遍的需求. 因此, 我们通常会把阻塞队列, 封装成⼀个独⽴的服务器程序, 并且赋…

【数据分享】1929-2024年全球站点的逐日平均气温数据(Shp\Excel\免费获取)

气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…

[实现Rpc] 环境搭建 | JsonCpp | Mudou库 | callBack()

目录 1. 项目介绍 2. 技术选型 3. 开发环境和环境搭建 Ubuntu-22.04环境搭建 1. 安装 wget(一般情况下默认会自带) 2. 更换国内软件源 ① 备份原始 /etc/apt/sources.list 文件 ② 编辑软件源文件 ③ 更新软件包列表 3. 安装常用工具 3.1 安装…

Spring Boot 整合 Redis:提升应用性能的利器

Redis (Remote Dictionary Server) 是一款高性能的键值对存储数据库,它以内存存储为主,具有速度快、支持丰富的数据类型等特点,被广泛应用于缓存、会话管理、排行榜等场景。 Spring Boot 提供了对 Redis 的良好支持,使得我们可以轻…

yt-dlp脚本下载音频可选设置代理

import yt_dlp# 配置:是否使用代理 use_proxy = True # 设置为 False 可关闭代理# 代理地址 proxy_url = socks5://127.0.0.1:1089URLS = [https://www.bilibili.com/video/BV1WTktYcEcQ/?spm_id_from=333.1007.tianma.6-2-20.click&vd_source=dcb58f8fe1faf749f438620b…