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

news/2025/1/20 18:29:15/

在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/news/1564723.html

相关文章

车载以太网:新能源汽车智驾的幕后英雄

在新能源汽车蓬勃发展的当下,智能驾驶已成为行业变革的核心驱动力。而车载以太网,作为支撑智能驾驶实现的关键技术,正如同汽车的 “高速信息公路”,为车辆内各系统间海量数据的高速、稳定传输提供了保障。随着特斯拉、蔚来、小鹏等…

mkv转码mp4(ffmpeg工具)

基于windows,Linux也可以用,都是命令行 下载路径(https://github.com/BtbN/FFmpeg-Builds/releases) 下载安装包:ffmpeg-n6.1-latest-win64-lgpl-6.1.zip,(根据自己的平台选择下载)并…

《 C++ 点滴漫谈: 二十二 》操作符炼金术:用C++ operator重塑代码美学

摘要 C 的 operator 关键字和操作符重载是语言的核心特性之一,使开发者能够扩展内置操作符以适应自定义类型,从而实现更高效、直观的代码表达。本文全面解析了 operator 关键字的基本概念、支持重载的操作符范围及其使用场景,详细介绍了操作…

FunASR 在Linux/Unix 平台编译

第一步拉取镜像并生成容器: ### 镜像启动 通过下述命令拉取并启动FunASR软件包的docker镜像: shell sudo docker pull \ registry.cn-hangzhou.aliyuncs.com/funasr_repo/funasr:funasr-runtime-sdk-online-cpu-0.1.12 mkdir -p ./funasr-runtime-…

【全栈开发】----Mysql基本配置与使用

本篇是在已下载Mysql的情况下进行的,若还未下载或未创建Mysql服务,请转到这篇: 2024 年 MySQL 8.0.40 安装配置、Workbench汉化教程最简易(保姆级)_mysql8.0.40下载安装教程-CSDN博客 本文对于mysql的操作均使用控制台sql原生代码…

【Rust自学】13.2. 闭包 Pt.2:闭包的类型推断和标注

13.2.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发,而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中,我们会讨论 Rust 的一…

【C语言】_自定义类型:联合体

目录 1. 联合体类型的声明 2. 联合体的特点 3.1 成员变量共用一块内存 3.2 由于共用内存导致的相关性 4. 结构体与联合体对比 5. 联合体大小的计算 6. 联合体的应用 6.1 多类型特定属性组结构体 6.1.1 设计方案1:采用纯结构体 6.1.2 设计方案2&#xff1a…

2025寒假备战蓝桥杯01---朴素二分查找的学习

文章目录 1.暴力方法的引入2.暴力解法的思考 与改进3.朴素二分查找的引入4.朴素二分查找的流程5.朴素二分查找的细节6.朴素二分查找的题目 1.暴力方法的引入 对于下面的这个有序的数据元素的组合,我们的暴力解法就是挨个进行遍历操作,一直找到和我们的这…