如何使用pipenv仅安装开发依赖 避免重复安装生产依赖
Pipenv 仅安装开发依赖的解决方案
方案1:使用--only-dev参数(推荐,适用Pipenv 2022.4.8及以上版本)
Pipenv 从2022.4.8版本开始新增了--only-dev参数,专门用于跳过生产依赖的安装,仅安装开发依赖,直接替换你原来的命令即可:
RUN pipenv install --system --deploy --ignore-pipfile --only-dev
这个参数会完全忽略默认的生产依赖列表,只安装Pipfile.lock里标记为dev的依赖包,不会重复安装基础镜像中已经存在的生产依赖,完美适配你的Docker镜像分层构建场景。
方案2:适配旧版本Pipenv的替代方案
如果你使用的Pipenv版本较低,没有--only-dev参数,可以先导出开发依赖列表,再通过pip单独安装:
RUN pipenv requirements --dev > dev-requirements.txt && \ pip install --system --no-cache-dir -r dev-requirements.txt && \ rm -f dev-requirements.txt
这个方法是先把所有开发依赖导出为pip能识别的requirements格式,再直接用pip安装,同样不会触发生产依赖的重复安装。
注意事项
- 构建测试镜像时,必须使用和基础镜像构建时完全相同的Pipfile.lock文件,避免开发依赖和已安装的生产依赖出现版本冲突。
- 如果开启了pip缓存,建议在安装命令中添加
--no-cache-dir参数缩小镜像体积。
内容的提问来源于stack exchange,提问作者pondermatic
相关产品推荐
相关产品推荐

