Linux怎么安装Pyenv-Virtualenv Linux多版本Python环境管理详解

风明酱_3363

风明酱_3363

2026-05-10

691人浏览

原创

pyenv-virtualenv是pyenv的插件,非独立工具;装好pyenv后通常已自带,无需pip install,但需执行eval "$(pyenv virtualenv-init -)"并确保pyenv shims在path最前,且python版本须预先安装。

linux怎么安装pyenv-virtualenv linux多版本python环境管理详解

pyenv 和 pyenv-virtualenv 不是两个独立安装的工具,后者是前者的插件——**装好 pyenv 后,pyenv-virtualenv 通常已自带,无需单独 pip install**。这是最容易踩的第一个坑:很多人反复执行 pip install pyenv-virtualenv,结果发现 pyenv virtualenv 命令仍报错或不识别。

确认 pyenv 是否已带 virtualenv 插件

运行以下命令:

pyenv commands | grep virtualenv

如果输出包含 virtualenv、virtualenv-delete、virtualenvs,说明插件已就绪;否则需检查安装方式。

  • 用 pyenv-installer 脚本安装(推荐):自动包含 pyenv-virtualenv
  • 手动 git clone 安装:需额外执行 git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
  • Mac 上用 brew install pyenv pyenv-virtualenv:二者会同时装上,但注意 brew 版本可能滞后

配置必须加这行,否则 virtualenv 命令无效

很多用户配好了 pyenv,却漏掉关键一行:

eval "$(pyenv virtualenv-init -)"

它必须和 pyenv init 一起写进 ~/.bashrc 或 ~/.zshrc,顺序无关,但缺一不可。漏掉后,pyenv virtualenv 3.9.18 myproject 会静默失败,或者提示 command not found: pyenv-virtualenv。

创建虚拟环境时,Python 版本必须已安装且可用

pyenv virtualenv 不会自动帮你装 Python。执行前请确认:

提示词大师-python版
提示词大师-python版

图片提示词生成器?不止如此。 马甲系统 —— 把脑海中的画面,翻译成AI能理解的专业表达。 用得越多,它越懂你:首次需要多问几句确认方向,用久了几乎一说就懂。 用得越多,它越快:缓存机制让后续对话越来越省。 RAG进化:成功案例持续入库,越跑越聪明。 输入「新手指南」查看完整功能介绍

下载
  • pyenv install -l | grep 3.9.18 能查到该版本(说明源里有)
  • pyenv install 3.9.18 已成功执行(编译完成,无 error)
  • pyenv versions 输出中包含 3.9.18(前面没星号也行,只要存在)

常见错误:pyenv virtualenv 3.9.18 myproj 报错 python-build: definition not found: 3.9.18,本质是版本没装,不是命令写错。

虚拟环境名不能和已存在目录同名,也不能含斜杠

pyenv virtualenv 会在 $(pyenv root)/versions/ 下建子目录,例如:

~/.pyenv/versions/3.9.18/envs/myproj

所以:

  • 如果当前目录下已有 myproj/ 文件夹,命令会失败(提示 directory not empty)
  • pyenv virtualenv 3.9.18 myproj/sub 是非法的——名字里不能含 /
  • 名字区分大小写,MyProj 和 myproj 是两个环境

激活方式不是 source myproj/bin/activate,而是统一走 pyenv 调度:

  • pyenv local myproj(只对当前目录生效)
  • pyenv shell myproj(只对当前 shell 会话生效)
  • pyenv global myproj(全局默认,慎用)

执行后,which python 会指向 ~/.pyenv/versions/myproj/bin/python,而不是系统或 pyenv 版本路径。

真正容易被忽略的是:pyenv 的 shims 机制依赖 PATH 中 $(pyenv root)/shims 在最左侧。一旦你手动改过 PATH(比如在脚本里 export PATH=/usr/local/bin:$PATH),就可能把 shims 排到后面,导致 python 命令绕过 pyenv 直接调用系统 Python。这种问题不会报错,只会“看起来一切正常,但实际没切版本”。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux python

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3710

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3213

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2293

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5490

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5142

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3073

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2565

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2779

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习