pip install -e .
和 python setup.py install
是两种不同的 Python 包安装方式,它们的主要区别如下:
安装模式
pip install -e .
:- 这是可编辑模式安装(editable mode)。它会将项目目录作为一个包安装到环境中,同时在项目目录中创建一个
.egg-link
文件,指向安装的包。 - 优点是当你对项目代码进行修改时,这些修改会立即反映到已安装的包中,无需重新安装,方便开发和调试。
- 缺点是由于是链接到项目目录,如果项目目录被移动或删除,包可能无法正常工作。
- 这是可编辑模式安装(editable mode)。它会将项目目录作为一个包安装到环境中,同时在项目目录中创建一个
python setup.py install
:- 这是普通模式安装。它会将包的代码复制到 Python 的安装目录中(如
site-packages
),安装后源代码和安装后的代码是分离的。 - 优点是安装后的包是独立的,不会受到源代码目录的影响,适合将包安装到生产环境中。
- 缺点是如果需要修改代码,必须重新安装包。
- 这是普通模式安装。它会将包的代码复制到 Python 的安装目录中(如
安装依赖
pip install -e .
:- 会自动安装
setup.py
文件中指定的依赖(install_requires
)。 - 如果依赖已经安装,会检查版本是否符合要求,不符合则会尝试更新。
- 会自动安装
python setup.py install
:- 不会自动安装依赖,需要手动安装依赖或在安装包之前运行
pip install -r requirements.txt
(如果项目有requirements.txt
文件)。
- 不会自动安装依赖,需要手动安装依赖或在安装包之前运行
安装路径
pip install -e .
:- 安装到当前 Python 环境的
site-packages
目录下,同时在项目目录中创建一个.egg-link
文件。 - 可以通过
pip show <package_name>
查看安装路径。
- 安装到当前 Python 环境的
python setup.py install
:- 安装到 Python 的安装目录中,通常是
site-packages
目录。 - 安装路径可以通过
python -m site
查看。
- 安装到 Python 的安装目录中,通常是
使用场景
pip install -e .
:- 适用于开发阶段,方便快速测试代码修改。
- 适用于需要频繁修改代码的项目。
python setup.py install
:- 适用于生产环境,安装后的包是独立的,不会受到源代码目录的影响。
- 适用于不需要频繁修改代码的项目。
总结:pip install -e .
是可编辑模式安装,适合开发阶段;python setup.py install
是普通模式安装,适合生产环境。