You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行poetry install后部分依赖包未安装到虚拟环境是什么原因?

问题原因

该问题由NixOS的Python包路径优先级机制导致:
NixOS会将系统或当前Shell环境下通过Nix安装的Python包路径(即/nix/store/下的对应路径)添加到Python的sys.path最前端,优先级高于Poetry创建的虚拟环境路径。当Poetry执行安装操作时,检测到已有符合版本要求的pluggy包存在,就不会再向虚拟环境目录重复安装该包。
从给出的输出来看,pluggy是tox、pytest的依赖,说明这两个包大概率是通过Nix方式安装,连带预装了对应版本的pluggy。

解决步骤
  • 移除Nix环境中预装的相关Python包
    检查你的configuration.nix、用户环境包列表或是当前Shell的shell.nix/flake.nix配置,移除通过Nix安装的pytest、tox这类Python项目依赖,将这类依赖统一放到Poetry的pyproject.toml中管理。
  • 调整Poetry配置后重新安装依赖
    执行以下命令清理现有虚拟环境,配置虚拟环境禁止继承系统站点包后重新安装所有依赖:
    # 删除当前项目的现有虚拟环境
    poetry env remove python3.8
    # 全局配置Poetry创建虚拟环境时默认不继承系统site-packages
    poetry config virtualenvs.options.no-site-packages true
    # 重新执行依赖安装
    poetry install
    
  • 验证安装结果
    执行poetry run pip show pluggy,确认输出的Location路径已经变为Poetry虚拟环境对应的站点包目录即可。

内容的提问来源于stack exchange,提问作者stianlagstad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 08:57:03