从外部目录调用模块时,同目录模块导入提示ModuleNotFoundError
解决Python模块导入错误的几种方法
针对你遇到的问题,有以下几种可行的解决方式:
方法一:使用相对导入
修改module1.py中的导入语句为:
from . import module2
这里的.代表当前模块所在的目录(也就是modules目录),Python会从这个目录下查找module2,不管是直接运行module1.py还是通过main.py导入,都能正确找到模块。
方法二:使用绝对导入
修改module1.py中的导入语句为:
from modules import module2
这种方式明确指定了从根目录下的modules包导入module2,运行main.py时根目录已经在Python的模块搜索路径sys.path中,因此能正确定位到模块。
方法三:手动添加模块搜索路径
在module1.py的开头添加以下代码,把当前模块所在的目录加入到Python的搜索路径中:
import sys import os # 获取当前文件所在目录的绝对路径 current_dir = os.path.dirname(os.path.abspath(__file__)) # 将该目录添加到sys.path sys.path.append(current_dir) import module2
这样Python在查找module2时,会优先搜索我们添加的目录,自然就能找到同目录下的module2了。
内容的提问来源于stack exchange,提问作者gamers beware
相关产品推荐
相关产品推荐

