pyenv 手把手入门:告别 Python 版本混乱,多版本一键切换 pyenv 手把手入门告别 Python 版本混乱多版本一键切换【免费下载链接】pyenvSimple Python version management项目地址: https://gitcode.com/GitHub_Trending/py/pyenvpyenv 是一款用纯 shell 脚本编写的轻量级 Python 版本管理器version manager帮你在一台机器上同时装、管、切多个 Python。它不打扰系统自带环境不需要用 Python 来安装 Python也不需要把什么东西塞进你的 shell 里常驻——靠一个叫 shims 的垫片目录加进 PATH 的一堆小脚本来决定每次运行的是哪个版本。老项目 3.9、新项目 3.12、临时测试 2.7pyenv 让它们和平共处一条命令切换。 先说痛点一台机器多个 Python怎么都不带乱你是不是也遇到过这种局面手上一个老项目只认 Python 3.9新开的仓库又要求 3.12而系统里那个 Python 3.6 还不敢动——系统工具依赖它升级一步错全盘错。常见的解法各有一堆麻烦Docker 太重、手动改 PATH 容易搞乱、每次装新版本都像拆弹。pyenv 的思路很UNIX 味道只做一件事并且做好。它把每个版本装在独立的目录里你真正需要做的只是告诉它现在用哪个切换的颗粒度可以细到全局、单个项目目录、甚至当前这个终端窗口。⚡ 快速上手三步装好并跑起第一个版本整个过程不到三分钟。第一步把 pyenv 克隆到~/.pyenv推荐放在家目录git clone https://gitcode.com/GitHub_Trending/py/pyenv ~/.pyenv如果不想手动 clone官方也提供curl -fsSL https://pyenv.run | bash的一键脚本效果相同。第二步让 shell 认识它把下面三行追加到~/.bashrczsh 用户改放~/.zshrc然后exec $SHELL重启终端生效export PYENV_ROOT$HOME/.pyenv [[ -d $PYENV_ROOT/bin ]] export PATH$PYENV_ROOT/bin:$PATH eval $(pyenv init - bash)第三步安装第一个 Python 版本并设为全局默认pyenv install 3.12.4 pyenv global 3.12.4装完跑一下python --version看到 3.12.4 就成功了。下面是实际安装本地 Python 过程的动态演示小提醒编译安装 Python 需要系统装好构建依赖Linux 下一般是libssl-dev、zlib1g-dev、libffi-dev等装失败大多是因为缺它们而不是 pyenv 的问题。 三个开关加一个机制五分钟看懂版本到底怎么切pyenv 的版本选择只有三个开关分别对应三个使用范围命令作用范围写到哪里pyenv global 3.12.4当前用户所有终端$PYENV_ROOT/versionpyenv local 3.9.7当前项目目录目录下的.python-version文件pyenv shell 2.7.18仅当前这个终端环境变量PYENV_VERSION典型用法pyenv global定一个稳妥的默认值cd进某个项目后执行pyenv local此后在这个目录里干活就是项目专属版本而.python-version文件本身建议提交到代码仓库队友 clone 下来自动就是对的版本。那它是怎么做到目录一变Python 就变的原理一句话shims 机制。pyenv 在自己目录里放了一组垫片脚本并把它加进PATH你敲python时实际先执行垫片垫片再根据下面的优先级去查该用哪个版本PYENV_VERSION环境变量pyenv shell设置的当前目录的.python-version文件逐级向上查找父目录的.python-version全局$PYENV_ROOT/version文件也就是说优先级从上到下递减越靠近你的设置越优先。下面这张图展示了多版本列表、全局切换和按目录取版本的完整效果 进阶工作流把版本管理用到顺手装好了基础这几个命令能让效率再上一个台阶。先查后装。不要盲装版本号先看仓库支持哪些pyenv install --list多版本共存。测试跨版本兼容性时配合 tox 这类工具尤其有用可以一次声明多个版本排在前面的优先pyenv local 3.12.4 3.9.7新装了包就 rehash。pip install了带命令行工具的新包之后执行一次pyenv rehash刷新垫片否则可能找不到新命令。用完的及时清理pyenv uninstall 3.8.10直接移除旧版本不占空间。随时用pyenv version显示当前版本及来源和pyenv versions列出全部已装版本确认状态。⚠️ 三个容易踩的坑提前说清楚pip 装完新包命令找不到不是安装失败是垫片没刷新跑一次pyenv rehash就好。.python-version别忘提交它只在本地生效不提交到仓库的话队友的项目版本就失效了。pyenv 不管虚拟环境它只管用哪个 Python不管装哪些包。想要包级别的隔离还是老老实实配python -m venv或 pyenv-virtualenv 插件两者是互补关系不是替代关系。所有命令的完整说明都在仓库的 COMMANDS.md安装细节与原理PATH、shims、版本选择可翻 README.md 的 How It Works 一节仓库里的 plugins/ 目录也内置了像 pyenv-binary 这样的官方插件想让安装走二进制预编译包的可以去看看。写到这里你手上已经有了一个干净的默认版本、一套按项目自动切换的规则以及随时能加进 PATH 的备用版本。下次再有这个老项目怎么跑的困扰时答案就一行pyenv local 3.9.7然后回去专心写代码吧。【免费下载链接】pyenvSimple Python version management项目地址: https://gitcode.com/GitHub_Trending/py/pyenv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考