pip install -e 与不带-e的区别及查看方法

日常使用pip安装Python包时,经常会看到两种安装方式:pip install -e . 和 pip install .,很多人不清楚两者的区别,尤其是在配置训练环境(如mmseg)、打包环境迁移时,容易踩坑。今天用最直白的话,讲清两者区别+查看方法,新手也能看懂。

一、核心区别:带-e(可编辑模式)vs 不带-e(普通安装)

两者的核心差异,在于「包的安装方式」和「使用场景」,用表格总结最清晰,不用记复杂原理:

对比维度 pip install -e . (可编辑模式) pip install . (普通安装)
安装本质 不复制代码到Python库目录,仅创建「快捷方式」,指向本地源码文件夹 将本地源码复制到Python库目录,完全安装到环境中
源码修改 修改本地源码后,无需重新安装,直接生效 修改本地源码后,必须重新安装才能生效
环境打包 打包后会失效(快捷方式路径不匹配),需额外处理 打包后可直接迁移,无需额外操作
适用场景 开发阶段(频繁修改源码,如调试mmseg) 部署/迁移阶段(环境稳定,无需修改源码,如mmseg训练环境打包)

二、关键提醒(结合mmseg场景)

如果你像我一样,需要打包mmseg训练环境,迁移到另一台电脑直接使用,优先选 pip install .(不带-e)!

因为带-e安装的mmseg,打包环境时会因「快捷方式路径」问题失效,迁移后还需要重新执行 pip install -e .,非常麻烦;而不带-e安装,打包后解压就能直接训练,零额外操作。

三、如何查看:哪些包是带-e安装的?

教你3个简单命令,复制粘贴就能查看,优先推荐前2个(最快捷),适配Windows/Linux/Mac。

方法1:直接查看所有可编辑包(推荐)

在你的环境中(如激活mmseg环境后),运行命令:

pip list -e

✅ 输出结果说明:

如果有内容(如下),说明这些包是带-e安装的(后面会显示本地源码路径):

Package Version Editable project location
-------------- ------- -----------------------------
mmsegmentation 1.2.2 e:\kongen\mmsegmentation-main

如果没有任何输出,说明当前环境没有带-e安装的包,可直接打包迁移。

方法2:查看所有包,标记可编辑包

运行命令:

pip list

✅ 识别方法:版本号后面跟着「本地路径」的,就是带-e安装的包(如下):

numpy 1.26.2
mmsegmentation 1.2.2 e:\kongen\mmsegmentation-main
torch 2.1.0

方法3:过滤可编辑包(适合批量查看)

Windows系统运行:

pip freeze | findstr "^-e"

Linux/Mac系统运行:

pip freeze | grep "^-e"

✅ 输出结果:仅显示带-e安装的包,简洁高效。

四、总结(新手必看)

  1. 开发调试(改源码)→ 用 pip install -e .,方便实时生效;

  2. 环境打包/迁移(不改源码)→ 用 pip install .,打包后直接用;

  3. 查看带-e包 → 优先用 pip list -e,一眼分清。

不用死记原理,记住「开发用带-e,迁移用不带-e」,就能避开大部分坑~

(注:文档部分内容可能由 AI 生成)

posted @ 2026-04-13 10:01  kongen  阅读(121)  评论(0)    收藏  举报