如何通过requirements.txt复用setup.py依赖且不安装项目本身?
解决方案
方法一:直接安装setup.py定义的依赖(无需安装项目本身)
不用通过requirements.txt,直接执行以下命令即可安装setup.py里声明的所有依赖:
pip install $(python setup.py egg_info --requires)
这个命令会先让setuptools导出项目的依赖列表,再通过pip安装这些依赖,完全不会安装项目本身。
Windows PowerShell环境下可改用:
python setup.py egg_info --requires | ForEach-Object { pip install $_ }
方法二:调整requirements.txt实现依赖复用且不安装项目
如果坚持要用requirements.txt,可将文件内容改为动态获取依赖的命令(仅适用于类Unix系统):
$(python setup.py egg_info --requires)
执行pip install -r requirements.txt时,shell会先把命令内容替换为具体的依赖列表,再让pip安装这些依赖,不会安装项目本身。
方法三:用可编辑安装(开发场景更实用)
如果你的核心需求是开发时避免依赖配置重复,其实可直接用可编辑安装命令——虽然会安装项目,但只是把源码链接到Python环境,修改代码无需重新安装,反而更适配开发流程:
pip install -e .
该命令会自动安装项目的所有依赖,同时将项目以可编辑模式挂载到环境中,完全满足开发需求。
方法四:使用pip-tools统一管理(适合复杂场景)
如果项目后续需要精准控制依赖版本,可借助pip-tools工具链:
- 安装工具:
pip install pip-tools - 创建
requirements.in文件,内容仅写. - 执行
pip-compile requirements.in,自动生成包含所有依赖(带具体版本)的requirements.txt - 安装依赖时执行
pip-sync requirements.txt,会自动安装所有依赖并清理环境中的多余包
这种方式既避免了配置重复,又能锁定依赖版本,适合长期维护的项目。
内容的提问来源于stack exchange,提问作者Aconstnull
相关产品推荐
相关产品推荐

