文章目录
- mac上安装pyenv
-
-
- [准备工作:检查 Shell 类型](#准备工作:检查 Shell 类型)
- [第一步:安装 Homebrew (Mac 的软件包管理器)](#第一步:安装 Homebrew (Mac 的软件包管理器))
- [第二步:安装 Python 编译依赖](#第二步:安装 Python 编译依赖)
- [第三步:安装 Pyenv](#第三步:安装 Pyenv)
- [第四步:配置 Zsh (最关键的一步)](#第四步:配置 Zsh (最关键的一步))
-
- linux上安装pyenv
-
- 第一步:安装编译依赖(最关键的一步!)
- [第二步:一键安装 Pyenv](#第二步:一键安装 Pyenv)
- [第三步:配置 Shell(环境变量)](#第三步:配置 Shell(环境变量))
- [使用pyenv(不区分 mac 和 linux)](#使用pyenv(不区分 mac 和 linux))
- 常用操作速查表 (建议截图保存)
- [conda 和 pyenv 换成重叠](#conda 和 pyenv 换成重叠)
mac上安装pyenv
这是 macOS 上目前最标准、最干净的 Python 环境配置方案。按照这个流程走,能完美避开权限问题和版本冲突。
准备工作:检查 Shell 类型
macOS (Catalina 10.15 之后) 默认使用 Zsh 。
在终端输入 echo $SHELL,如果输出 /bin/zsh,请严格按照下文操作。
第一步:安装 Homebrew (Mac 的软件包管理器)
Homebrew 是 Mac 终端的神器,没有它安装软件会很痛苦。
- 打开终端(Terminal)。
- 复制并运行以下官方安装命令:
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
过程中可能需要输入你的电脑开机密码(输入时屏幕不显示,输完回车即可),并按 Enter 确认。
⚠️ 重点注意(Apple Silicon M1/M2/M3 用户):
安装结束后,看终端底部的提示!如果出现 Next steps:,告诉你需要运行两行命令(通常是 echo ... >> /Users/xxx/.zprofile 之类的),请务必复制并运行那两行命令。否则 Homebrew 无法使用。
- 验证安装是否成功:
bash
brew --version
第二步:安装 Python 编译依赖
Pyenv 是通过"下载源码 -> 本地编译"的方式安装 Python 的。为了防止编译报错(比如缺少 SSL 模块、无法解压等),我们需要先装好依赖库。
在终端运行:
bash
brew install openssl readline sqlite3 xz zlib tcl-tk
第三步:安装 Pyenv
有了 Homebrew,安装 Pyenv 只需要一行命令:
bash
brew install pyenv
第四步:配置 Zsh (最关键的一步)
安装完 Pyenv 只是把软件下载下来了,必须把它挂载到 Zsh 的启动流程里,才能拦截 python 命令。
请一次性复制下面这块代码,粘贴到终端并回车(这会自动把配置写入你的 ~/.zshrc 文件):
bash
echo '' >> ~/.zshrc
echo '# Pyenv 配置' >> ~/.zshrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
让配置立刻生效:
bash
source ~/.zshrc
linux上安装pyenv
Linux 和 macOS 唯一的最大区别在于:你需要手动安装一堆"编译依赖库"。 (macOS 的 Homebrew 通常帮你偷偷装好了,但在 Linux 上,如果你不装这些库,Pyenv 下载 Python 源码后会编译失败,或者编译出来的 Python 缺胳膊少腿,比如不能用 SSL,不能解压 zip 等。)
第一步:安装编译依赖(最关键的一步!)
在开始安装 Pyenv 之前,必须先安装 Python 构建所需的依赖。 请根据你的 Linux 发行版,复制下面的命令运行:
如果是 Ubuntu / Debian / Deepin / Mint:
sj
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
如果是 CentOS / Fedora / RHEL:
sh
sudo dnf install make gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel \
openssl-devel tk-devel libffi-devel xz-devel
(如果这一步不做,你后面执行 pyenv install 3.10.4 时会报错,或者装好的 Python 无法使用 pip。)
第二步:一键安装 Pyenv
在终端执行如下命令,安装 pyenv
curl https://pyenv.run | bash
第三步:配置 Shell(环境变量)
Linux 默认通常是 Bash,配置文件是 ~/.bashrc。 如果你在 Linux 上也安装了 Zsh,那就是 ~/.zshrc。
首先打开 ~/.bashrc文件:
sh
vim ~/.bashrc
把下面这段代码加到你的配置文件底部:
sh
# Pyenv 配置
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
然后添加完后,要使.bashrc文件配置生效,还要执行下面的命令:
sh
source ~/.bashrc
# 或者如果你用 zsh
source ~/.zshrc
使用pyenv(不区分 mac 和 linux)
想要在本地项目使用pyenv,需要按照如下步骤:
sh
// 用pyenv 安装具体的python版本
pyenv install 3.10.4
// 进入你的项目
cd you_project
//// 指定该目录使用当前 python 版本。此时会生成一个.python-verison文件
pyenv local 3.10.4
// 利用 python 自带的 venv,在本地创建.venv目录的虚拟环境。下面的 -m 是 module 模块的意思,用 python 自带的库实现。
python -m venv .venv
// 激活当前环境
source .venv/bin/activate
常用操作速查表 (建议截图保存)
| 操作 | 命令 |
|---|---|
| 安装新版本 | pyenv install 3.11.5 |
| 查看已安装版本 | pyenv versions |
| 切换当前目录版本 | pyenv local 3.11.5 (推荐) |
| 切换全局默认版本 | pyenv global 3.10.13 |
| 卸载某个版本 | pyenv uninstall 3.8.10 |
conda 和 pyenv 换成重叠
如果你有和我如图一样的问题:
会导致 pyenv 和 conda 环境重叠。此时可以选择关掉 Conda 的自动启动,避免再次打架:
bash
conda config --set auto_activate_base false
以后只在需要复杂数据科学库时,才手动输 conda activate。平时开发就用刚装好的 Pyenv。