搞懂 Python 本地安装:`pip install .` 与 `pip install -e .` 的本质区别

张开发
2026/4/6 4:32:44 15 分钟阅读

分享文章

搞懂 Python 本地安装:`pip install .` 与 `pip install -e .` 的本质区别
在 Python 项目开发中当你编写了一个自己的包包含setup.py或pyproject.toml并希望将其安装到当前的虚拟环境以便调用时通常会在项目根目录执行安装命令。最常见的两个命令是pip install .和pip install -e .。虽然它们看起来只有两个字符的差异但底层的工作机制和适用场景却完全不同。本文将带你理清这两者的关系。这里的.代表什么在 Linux 和终端语境中.点代表当前目录。因此这两个命令的意思都是“将当前目录下的 Python 项目作为一个包安装到 Python 环境中”。前提是当前目录必须存在构建文件如setup.py或pyproject.toml。1.pip install .标准安装“复制粘贴”模式这是最标准的打包与安装流程。工作机制当你执行这个命令时pip会读取项目的配置文件将你的源代码打包并将其物理复制到当前 Python 环境的site-packages目录下。核心影响安装完成后你的虚拟环境使用的是site-packages里的那份副本。此时如果你在 IDE 中修改了工程目录下的源代码环境中的包并不会发生任何改变。你必须重新执行一次pip install .才能让修改生效。适用场景生产环境与部署部署。当你的代码已经开发完毕准备打包发布到服务器或者提供给最终用户使用时使用标准安装可以保证代码的静态和稳定。2.pip install -e .可编辑安装“快捷方式”模式这里的-e是--editable可编辑的缩写也被称为“开发模式”develop mode。工作机制它不会将你的代码复制到site-packages目录中。相反它会在site-packages目录下创建一个“链接”通常是通过.egg-link文件或特殊的路径配置文件这个链接直接指向你的源代码所在的工作目录。核心影响因为环境直接通过引用指向了你的工作目录所以你在本地编辑器中对源码做的任何修改只要不涉及新增、删除核心文件或改变入口点配置保存后都会立即在运行环境中生效无需重新安装。适用场景日常开发与 Debug。在开发自己的开源库或企业内部工具时代码处于频繁变动的状态可编辑安装省去了无数次重复打包和安装的麻烦极大地提高了开发效率。总结与对比为了更直观地理解我们可以通过下表进行对比特性pip install .(标准安装)pip install -e .(可编辑安装)底层机制将源码文件复制到site-packages在site-packages创建指向源码的链接源码修改修改后无效必须重新安装保存修改后立即生效直接可跑项目体积占用额外的磁盘空间 (复制了一份)几乎不占额外空间 (只有一个链接文件)核心场景生产环境、最终部署、测试最终包本地开发、代码调试、频繁修改阶段一句话最佳实践自己在电脑上写代码、调 Bug 时永远用pip install -e .把项目放上服务器正式运行或者打包给别人用时用pip install .。

更多文章