FEATURED · 精选文章

pyenv:一台机器管理多个 Python 版本,不动系统自带的那份

发布时间 / 2026/8/31 10:27:46
来源 / 创域科博编辑部
栏目 / 资讯中心
pyenv:一台机器管理多个 Python 版本,不动系统自带的那份 pyenv一台机器管理多个 Python 版本不动系统自带的那份【免费下载链接】pyenvSimple Python version management项目地址: https://gitcode.com/GitHub_Trending/py/pyenvpyenv 是一个纯 shell 脚本编写的 Python 版本管理工具让同一台机器上并存多个 Python 版本按目录、按会话切换不改动系统自带的解释器。它不依赖 Python 本身运行也不需要往 shell 里加载大块运行时开销小行为可预期。先看它怎么拦截你的命令pyenv 的机制并不复杂启动时把一个 shims 目录塞到PATH最前面。之后你输入python或pip命中的其实是同名的 shim 脚本由它查出当前应该启用哪个版本再把命令转交给对应版本下的真实解释器。上图是三条命令的效果pyenv versions列出已装版本pyenv global pypy-2.6.0做全局切换cd进项目目录后版本改由目录里的.python-version文件决定。三步完成 pyenv 安装与 shell 配置第一步把源码克隆到~/.pyenvgit clone https://gitcode.com/GitHub_Trending/py/pyenv ~/.pyenv cd ~/.pyenv src/configure make -C srcmake这一步可选编译一个 bash 扩展来加快命令执行失败也不影响使用。第二步往 shell 启动文件bash 即.bashrc追加三行配置export PYENV_ROOT$HOME/.pyenv [[ -d $PYENV_ROOT/bin ]] export PATH$PYENV_ROOT/bin:$PATH eval $(pyenv init - bash)第三步执行exec $SHELL重载 shell。另外pyenv install新版本前要先装好系统的编译依赖如 OpenSSL 开发库大多数 Python 版本是源码编译安装的耗时几分钟属正常现象。pyenv global、local、shell 三个开关的区别装版本用两条命令pyenv install -l # 列出可安装版本 pyenv install 3.11.4切换按作用域分成三档表格比逐条解释更清楚命令作用范围记录方式pyenv global 3.11.4当前用户全局$PYENV_ROOT/version文件pyenv local 3.10.9当前目录及子目录写入目录下的.python-versionpyenv shell 3.9.7仅当前终端会话环境变量PYENV_VERSION优先级从高到低shell local global。跑pyenv version会同时给出当前版本和它的来源排查问题时有用。也可以一次指定多个版本例如pyenv global 3.11 3.10shim 会按顺序查找命令找不到再回落到系统 Python方便做多版本兼容测试。python 版本没换过来时查这四处版本没切换先跑pyenv which python看命令实际会落到哪个可执行文件再和which python对比能定位是不是 PATH 被别处覆盖。pip 装完包找不到新命令可执行文件还没登记进 shims跑一次pyenv rehash重建。pyenv install报错多数是缺编译依赖按报错信息补装开发包再试。想删掉旧版本pyenv uninstall 3.9.7所有版本都放在$PYENV_ROOT/versions下一个版本一个目录。下一步可以做什么如果除了切版本还要隔离项目依赖可在指定版本上用python -m venv建虚拟环境或安装 pyenv-virtualenv 插件统一管理。子命令清单用pyenv commands查看完整参数说明见 COMMANDS.md版本判定逻辑的源码在 libexec/pyenv-version-origin。留两个问题想一下团队协作时.python-version要不要提交进仓库换机器重装环境时你打算如何保证装出来的 Python 版本一致【免费下载链接】pyenvSimple Python version management项目地址: https://gitcode.com/GitHub_Trending/py/pyenv创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻