pip install -e . 是一个非常有用的命令,它用于在 Python 项目中安装当前目录下的包,并且是 可编辑模式 安装。
1. -e 选项:可编辑模式(editable mode)
-e选项表示 “editable” 模式。这个模式下,pip会安装你当前目录下的 Python 包,但并不会把它的代码复制到 Python 的site-packages目录下。- 这样做的好处是,你安装的包是 “可编辑” 的,也就是说,如果你修改了包的源代码,这些修改会立即生效,而不需要重新安装包。这对于开发过程中非常有用,因为你可以在开发包时方便地测试和修改代码,而不需要反复执行安装命令。
2. .(点号)表示当前目录
- 在命令中,
.表示当前目录。也就是说,pip install -e .命令会在当前工作目录中查找setup.py文件,并根据该文件安装当前目录下的 Python 包。 setup.py是 Python 包的标准安装脚本,它描述了包的元数据(如名称、版本、依赖等)和如何安装该包。
3. 作用:开发模式安装
- 当你在开发一个 Python 包或模块时,使用
pip install -e .可以让你在不离开开发环境的情况下快速测试包的更改。 - 例如,如果你正在开发一个名为
my_package的项目,并且想要在开发时就直接安装并测试该包,你可以在项目的根目录运行以下命令:
这会将pip install -e .my_package安装到你的 Python 环境中,但任何对源代码的修改都会立即生效,无需重新安装包。
4. setup.py 文件
- 为了让
pip install -e .正常工作,当前目录必须包含一个setup.py文件。setup.py文件是用来定义包的安装信息的标准脚本。通常它看起来像这样:from setuptools import setup, find_packages setup( name="my_package", version="0.1", packages=find_packages(), install_requires=[ "numpy", "pandas" ] ) - 这个文件告诉
pip如何安装包、依赖哪些库等信息。
5. 安装过程
- 当你运行
pip install -e .时,pip会:- 找到当前目录中的
setup.py文件。 - 读取该文件中的信息,并将包安装到你的 Python 环境中。
- 在开发模式下,
pip会创建一个指向当前目录的链接,而不是将代码复制到 Python 的site-packages目录。
- 找到当前目录中的
6. 适用场景
- 开发期间安装:当你在开发自己的 Python 包时,使用
pip install -e .可以让你在开发过程中快速测试代码的修改。 - 依赖本地项目:如果你的项目依赖另一个本地开发中的 Python 包,你可以使用
pip install -e .安装它,而不需要上传到 PyPI 或使用 GitHub 之类的远程源。 - Git 仓库中的开发:当你从 Git 仓库克隆一个项目并想进行开发时,可以使用
pip install -e .安装该项目并开始开发。
7. 示例
假设你有一个包 my_package,目录结构如下:
my_package/
├── my_package/
│ ├── __init__.py
│ └── module.py
├── setup.py
└── README.md
在 setup.py 中,你可以定义包的基本信息:
from setuptools import setup, find_packages
setup(
name="my_package",
version="0.1",
packages=find_packages(),
)
然后,你在 my_package 目录下运行:
pip install -e .
这样,my_package 会被安装到你的 Python 环境中,并且你可以随时修改源代码,修改会立即生效。
总结:
pip install -e .是一个用于开发中的安装命令,它将当前目录下的 Python 包安装为可编辑模式。- 使用该命令,你可以方便地在开发时测试包的变化,而不需要每次修改代码后都重新安装包。
- 为了使用该命令,当前目录必须包含
setup.py文件。

609

被折叠的 条评论
为什么被折叠?



