Python模块导入异常:仅python_utils子目录无法导入问题咨询
问题原因分析
核心原因
你的问题大概率是系统中已存在同名的python_utils模块(标准库或第三方库),Python在导入时优先加载了系统里的这个模块,而非当前工作目录下的子目录。
验证逻辑
Python的模块搜索顺序是:
- 首先查找内置模块
- 然后按
sys.path列表的顺序搜索目录,当前工作目录默认在sys.path中,但如果有同名模块在更早的搜索位置(比如系统库路径),就会优先被加载。
你可以在Python交互环境里执行以下命令验证:
import sys print(sys.path) import python_utils print(python_utils.__file__)
如果输出的__file__路径不是你当前工作目录下的python_utils,就说明确实是加载了其他位置的同名模块。
解决办法
- 直接修改子目录名称,避免和现有模块重名(你已经试过改名后成功导入,这是最直接的方案)
- 调整
sys.path顺序,把当前工作目录放到最前面:import sys sys.path.insert(0, '.') from python_utils.dostuff import foo - 使用相对导入(如果你的代码是作为包的一部分运行):
from .python_utils.dostuff import foo
内容的提问来源于stack exchange,提问作者teraspora
相关产品推荐
相关产品推荐

