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

若安装两个提供同名import package的distribution package,哪个会被导入?

Python同名Import包的导入优先级问题

快速提示

  • Distribution Package:即通过pip安装的包,一个distribution package可包含多个import package,二者名称可相同也可不同。例如distribution package scikit-learn对应的import package是sklearn。

问题解答

当通过pip安装两个都提供同名import package(比如foo)的distribution package(比如a和b)时,执行import foo的导入结果由Python模块搜索路径的顺序决定:

  • Python会按照sys.path列表的顺序依次查找foo模块/包,哪个distribution package的安装路径更早出现在sys.path中,就会优先导入它提供的foo
  • 包的安装顺序会影响sys.path:如果先装包a再装包b,包b的路径通常会被加到sys.path更靠前的位置,此时import foo会导入包b的版本;反之则导入包a的版本
  • 若使用pip install --upgrade更新其中一个包,更新后的包路径会被移到sys.path前端,从而覆盖原有的导入优先级

这种情况属于典型的包冲突,会导致代码行为不可预测,建议尽量避免安装提供同名import package的distribution package。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 06:23:08