‘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.pypyproject.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 .     → 正式安装(复制代码)
相关推荐
开发者联盟league3 天前
linux普通用户使用pip安装模块
linux·python·pip
九成宫3 天前
WSL2 网络优化配置:提升Git克隆与包下载速度
windows·笔记·代理模式·pip·wsl
m0_617493947 天前
pip安装zxing-cpp报错“returned non-zero exit status 1”的完美解决方案
pip
咕噜咕噜啦啦8 天前
RTX5090配置DGL
pytorch·python·conda·pip
马优晨10 天前
Pip 和 Conda 是什么关系?
conda·pip·pip 和 conda 关系·conda和pip的关系·pip和conda是什么
金玉满堂@bj11 天前
# Groovy Pipeline 详解
pip
倒霉熊dd12 天前
Python学习(第一部分 语法与数据结构/核心基础)
大数据·python·学习·pip
陈eaten12 天前
windows上协调多版本python以及虚拟环境
开发语言·windows·python·pycharm·pip·虚拟环境·py
Dshuishui13 天前
我用 Claude Code 做了一个学术论文搜索工具
开发语言·人工智能·python·pip·uv
㳺三才人子15 天前
簡單的 語音助手
python·ai编程·pip