【Python问题】Python 导入模块的三种方式ModuleNotFoundError: No module named ‘模块名‘

本文介绍了Python导入模块时遇到ModuleNotFoundError的问题及其解决方法。Python解释器按顺序在当前目录、环境变量目录及默认安装目录查找模块。解决方法包括临时添加到sys.path、保存到默认路径、放入site-packages或修改系统环境变量。设置环境变量时,点表示当前路径,分号分隔多个路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python 导入模块的三种方式ModuleNotFoundError: No module named '模块名'


大家可以参考这个文档的解释很清楚:python导入模块的三种方式超详细http://c.biancheng.net/view/4645.html

问题

写程序import 我们写好的模块的时候经常会遇到ModuleNotFoundError: No module named ‘模块名’。
这个是因为python找不到相应的模块名。


一、Python解释器查找模块文件的过程。

当我们import导入模块时,Python会按照以下顺序查找指定的模块文件。

  1. 寻找当前目录,也就是当前执行的程序文件所在的目录下查找。
  2. 如果上一步没有查找到,到环境变量下的每个目录中目录;
  3. 到python默认的安装目录下查找
    这些都会保存到模块sys的sys.path变量中,我们需要保证我们要导入的文件的模块存储到sys.path中,如果没有的话就会报错ModuleNotFoundError: No module named ‘模块名’。
    sys模块中保存的路径

二、解决方法

  1. 临时向sys.path中添加我们所写的模块文件的完整路径,放在文件中的第一行,但是这种方法只是临时的,关闭窗口之后就会失效。
import sys
sys.path.append("文件的完整路径")

图片中红色的就是我们添加进入的路径
在这里插入图片描述

  1. 将模块放在sys.path变量中已包含的模块加载路径中;注释部分都是python的默认模块的加载路径,我们可以将我们所用的保存到这些默认路径中,可以让所有程序共享。
    将我们的文件放到lib\site-packages路径下,就相当于扩展了一个模块。
/*
['', 'D:\\Anaconda3\\python37.zip', 'D:\\Anaconda3\\DLLs',
 'D:\\Anaconda3\\lib', 'D:\\Anaconda3', 
'C:\\Users\\Jane\\AppData\\Roaming\\Python\\Python37\\site-packages',
 'D:\\Anaconda3\\lib\\site-packages', 
'D:\\Anaconda3\\lib\\site-packages\\win32', 
'D:\\Anaconda3\\lib\\site-packages\\win32\\lib', 
'D:\\Anaconda3\\lib\\site-packages\\Pythonwin'
*/
  1. 设置path系统环境变量
    直接将路径配置到环境变量里面去,python解释器就会按照path的路径来进行搜索,找到指定的模块,如果没找到就会报ModuleNotFoundError 异常。
    添加到环境变量中的用户变量中去,仅对当前登录用户有效即可。
    新建PYTHONPATH环境变量

对于变量值的学习解释:
.;d:\python_ module 以分号分隔为两个路径
第一个路径(.)只有一个点,表示当前路径,当运行Python程序时,Python将可以从当前路径中来读取模块
第二个路径为(d:\python_ module),表示当运行Python程序时,python可以从d:\python_ module中加载模块。

记录一下

对于普通用户来说,设置用户path变量和系统变量path变量的效果是一样的,Python在使用path变量时,会先按照系统path变量的路径去查找,然后在按照用户变量的路径去查找。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值