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

Python import/from...import搜索顺序:先当前工作目录还是sys.path?

Python模块导入路径优先级问题解答

咱们先把第一个问题掰明白:Python里的import(包括from ... import ...这类语句),默认情况下是先搜索当前工作目录(CWD),再去sys.path里的其他路径查找。为啥这么说?因为默认的sys.path列表里,第一个元素是空字符串'',这个空字符串对应的就是当前工作目录——相当于Python把当前工作目录默认放在了搜索路径的最优先级位置。

再看第二个问题:from [...] import [...]语句的行为对应的是cwd first(先搜索当前工作目录,再搜索sys.path路径)。

结合你给的几个示例脚本,咱们再加深理解:

  • 修改路径脚本:你用sys.path.insert(0, 'E:\demo_dir\example_dir\eg_dir\test_dir\')把目标目录插到了sys.path的最前面,这时候它的优先级就超过了默认的当前工作目录(空字符串),所以from src import name会先从这个插入的目录里找src模块,之后再恢复sys.path。
  • 修改工作目录脚本:你把当前工作目录切换到了目标目录,这时候sys.path里的空字符串就指向了这个新目录,所以from src import name会优先从这个新的当前工作目录里找模块,最后再切回原来的工作目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:13:47