‘pip install -e .‘ and ‘pip install .‘

Content

  • [1️⃣ `pip install -e .`](#1️⃣ pip install -e .)
  • [2️⃣ `pip install .`](#2️⃣ pip install .)
  • [3️⃣ 两者核心区别](#3️⃣ 两者核心区别)
  • [4️⃣ 举个最直观例子](#4️⃣ 举个最直观例子)
  • [5️⃣ 实际开发中怎么用](#5️⃣ 实际开发中怎么用)
  • [6️⃣ 一个很多人不知道的小知识](#6️⃣ 一个很多人不知道的小知识)

这两个命令都是用来 安装当前目录中的 Python 项目 (通常包含 setup.py 或 pyproject.toml),但行为不同。


1️⃣ pip install -e .

含义:

  • -e 表示 editable(可编辑模式)
  • . 表示 当前目录

完整含义:

以 可编辑模式安装当前 Python 项目

工作原理

pip 不会复制代码到 site-packages ,而是创建一个 链接(link) 指向当前目录。

因此:

  • 你修改源码
  • 不需要重新安装
  • Python 会 立即使用最新代码

常见使用场景

开发阶段:

例如开发一个库:

复制代码
my_project/
│
├── mylib/
│   ├── __init__.py
│   └── model.py
│
└── setup.py

执行

复制代码
pip install -e .

然后:

python 复制代码
import mylib

如果你修改:

复制代码
mylib/model.py

无需重新安装,修改立刻生效。

所以:

pip install -e . = 开发者模式安装


2️⃣ pip install .

含义:

正常安装当前项目

执行后:

  • pip 会

    • 打包项目

    • 复制到

      site-packages/

例如:

复制代码
/usr/lib/python3.x/site-packages/

此时:

  • 代码 与当前目录脱离
  • 修改源码 不会影响已安装版本

如果修改源码,需要重新安装:

复制代码
pip install .

3️⃣ 两者核心区别

命令 安装方式 修改代码是否生效 用途
pip install -e . 链接到源码 ✅ 立即生效 开发
pip install . 复制到site-packages ❌ 不生效 发布/使用

4️⃣ 举个最直观例子

假设你开发一个包:

复制代码
hello_pkg/
 ├── hello/
 │   └── say.py
 └── setup.py

使用

复制代码
pip install -e .

然后:

python 复制代码
from hello.say import hi

如果你改:

复制代码
say.py

程序 立刻使用新代码。


使用

复制代码
pip install .

然后改:

复制代码
say.py

程序 不会改变,因为运行的是:

复制代码
site-packages/hello/

5️⃣ 实际开发中怎么用

开发库时 100%用这个

复制代码
pip install -e .

例如常见项目:

  • ROS python packages
  • PyTorch projects
  • OpenAI projects
  • Huggingface projects

6️⃣ 一个很多人不知道的小知识

pip install -e . 本质上做的是:

创建一个

复制代码
site-packages/xxx.egg-link

文件,里面写着:

复制代码
/path/to/your/project

Python 导入模块时就会跳转到源码目录。


✅ 一句话总结

复制代码
pip install -e .  → 开发模式安装(源码链接)
pip install .     → 正式安装(复制代码)
相关推荐
Escalating_xu4 天前
【Python】使用库:标准库、第三方库、pip、项目实战与程序打包
java·python·pip
青春不朽5126 天前
pip 安装慢、超时、报错?一份国内源配置 + 9 个高频报错对照表
pip
ysu_03148 天前
uv实战指南-从Python版本虚拟环境到pyproject依赖管理
开发语言·python·pip·uv·虚拟环境·包管理·依赖管理
伞伞悦读19 天前
【第39期】Python 第三方包安装详解:pip、conda、requirements、版本锁定和镜像源
python·conda·pip
H Journey19 天前
pip 和uv 开发和部署python项目
python·pip·uv
北城笑笑22 天前
Python Dev 02 & Tkinter webbrowser 实战,手写第一个 Python 桌面 GUI 小工具
人工智能·python·pip
王_teacher25 天前
pycharm 无法将“pip”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
pycharm·pip·pycharm配置·无法将“pip”项识别·无法将pip项识别
zhangzeyuaaa1 个月前
深入理解 pip install .:安装当前目录项目的正确姿势
人工智能·python·pip
头茬韭菜1 个月前
第 1 篇:「架构鸟瞰与 Memory 初始化」—— 从 pip install 到三个工厂
jvm·架构·pip·mem0