问题描述:
pip install -e .指令是什么意思呢?之前都是安装需要requirements,这次怎么不需要呢?
问题解答:
pip install -e .
是 Python 项目中非常常见的“开发模式安装”命令。
它和你之前常见的 pip install -r requirements.txt
的作用不同,但场景更灵活,尤其用于安装本地项目源码包。
✅ 一句话解释:
pip install -e .
的作用是:把当前目录(即源码目录)作为“开发模式”安装进你的 Python 环境中。
🔍 命令详解:
部分 | 含义 |
---|---|
pip install | 安装包 |
-e | editable 模式(开发模式):表示安装的是“可编辑”的源码路径 |
. | 表示“当前目录”,即你当前所在的 ultralytics-main 文件夹 |
🧠 它和 requirements.txt
有什么不同?
项目 | pip install -r requirements.txt | pip install -e . |
---|---|---|
作用 | 安装依赖库(列在 requirements.txt 里) | 安装当前这个项目本身作为一个模块 |
使用场景 | 搭好运行依赖环境 | 将项目源码(如 ultralytics)注册到 Python 中,可以用 import ultralytics 等调用 |
是否需要 setup.py | 否 | ✅ 是(必须有 setup.py 或 pyproject.toml) |
对源码改动的反应 | 改源码需重装 | 改源码立刻生效(因为是软链接) |
✅ 适用于哪种情况?
比如你下载了 ultralytics-main
源码,你要:
-
以开发者的身份调试、修改源代码;
-
在你其他 Python 文件中
import ultralytics
直接调用它; -
希望代码一改、调用即生效(不需要每次重新打包或安装);
👉 这时就用:
pip install -e .
🔧 那为什么这次没有用 requirements.txt
?
很可能有两种情况:
-
项目已经自动声明依赖了(在
setup.py
或pyproject.toml
中写了 install_requires)-
所以
pip install -e .
的同时自动装好了依赖,不再需要额外-r requirements.txt
-
-
你前面已经手动装好了依赖库(比如 torch、opencv、numpy 等),所以它没报错
🧪 你可以测试一下:
pip show ultralytics
如果成功安装,说明你已经通过 -e
模式注册好了 ultralytics 包。
✅ 总结一段话:
pip install -e .
是开发者常用的源码安装方式,它将当前项目目录以“可编辑模式”安装到 Python 环境中,便于开发和调试。不同于requirements.txt
安装依赖,它是让项目本身变成一个可导入的模块。