如何让Poetry install忽略已全局安装的依赖包?
解决Poetry重复编译已预安装依赖的问题
以下是几种可行的解决方法,根据你的场景选择:
让虚拟环境继承系统全局包
Poetry默认创建的虚拟环境会隔离系统全局包,如果你已经在系统层面预安装了满足版本要求的package-2,可以修改Poetry配置,让虚拟环境继承系统站点包:poetry config virtualenvs.options.system-site-packages true之后执行
poetry install,Poetry会检测到系统中已存在符合依赖要求的package-2,跳过重新安装和编译步骤。锁定依赖版本并跳过更新
先确认预安装的package-2具体版本(比如通过pip show package-2 | grep Version获取),然后将该版本锁定到项目依赖中:poetry add --lock package-2==x.y.z接着执行带
--no-update参数的安装命令,强制Poetry使用已锁定的版本,不尝试更新或重新编译:poetry install --no-update跳过依赖安装直接安装目标包
如果你确认系统已满足package-1的所有依赖,可以直接跳过依赖处理,只安装package-1:poetry install --no-deps应急:设置忽略编译失败(不推荐)
若以上方法都无法生效,可通过修改Poetry的pip参数,强制忽略已安装包并跳过构建隔离(可能引发其他依赖问题,仅应急使用):poetry config installer.pip-args "--no-build-isolation --ignore-installed"之后执行
poetry install尝试安装。
内容的提问来源于stack exchange,提问作者Meir Tolpin
相关产品推荐
相关产品推荐

