前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python导入自定义模块ImportError: No module named 'xxx'问题

Python导入自定义模块ImportError: No module named 'xxx'问题

作者头像
芥末鱿鱼
发布2022-05-05 14:45:12
1.4K0
发布2022-05-05 14:45:12
举报
文章被收录于专栏:玩转 Spring Cloud玩转 Spring Cloud

Python导入自定义模块ImportError: No module named 'xxx'问题

文章目录

问题描述

python在导入自定义模块的时候(类、函数所有以.py结尾的文件), 出现"ImportError: No module named ‘xxx’"问题.

问题分析

由于导入的是自定义模块, 主要是有两种原因. 一个是自定义的模块名和python模块库里缓存的模块名重复了.另一个可能的原因是, 相对路径和绝对路径的原因.

模块名冲突

import 工作原理

  1. Python首先查找sys.modules中的模块名称。这是预先导入的所有模块的缓存。
  2. 如果在模块缓存中没有找到该名称,Python将通过内置模块列表进行搜索。这些模块是和Python一起预先安装的,并且可以在Python标准库中找到。
  3. 如果在内置模块中仍没有找到该名称,那么Python在sys.path定义的目录列表中搜索它。此列表通常包括当前目录,首先搜索该目录.

分析原因

如果sys.modules或者Python标准库中已经存在和自定义模块同名的模块, 则不会走到第三步.如果系统模块没有要引入的方法的话,就出出先该错误.

执行:pip3 list 查看一下时候有和自定义模块同名的

解决方案:修改自定义模块名

路径错误

系统路径当中并不存在该路径,可以执行以下代码查看以下:

代码语言:javascript
复制
import sys
print(sys.path)

Python会安装打印的路径一个个查找该路径下,是否有该模块.可以在 import 语句前加入以下代码,把相对路径加入到系统路径列表中

代码语言:javascript
复制
import sys
sys.path.append("..")

(注意;一个".“表示当前路径, 两个”…"表示当前路径的上一层路径)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 问题描述
  • 问题分析
  • 模块名冲突
    • import 工作原理
      • 分析原因
      • 路径错误
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档