博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python:ModuleNotFoundError: No module named 模块名 错误及解决方案
阅读量:4041 次
发布时间:2019-05-24

本文共 624 字,大约阅读时间需要 2 分钟。

背景描述:

当在idea编写python文件导入上级其它同级目录下文件时,编码检查及行行正常,但在linux远程使用命令执行报“ModuleNotFoundError: No module named 模块名”错误。

项目目录结构及执行脚本如下:

原因:

首先,了解os和sys的区别:

os:   这个模块提供了一种方便的使用操作系统函数的方法。如:os.path.exists() 是否存在,

sys: 这个模块可供访问由解释器使用或维护的变量和与解释器进行交互的函数。如:sys.argv 命令行参数List,第一个元素是程序本身路径

总结:os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。

        提示自定义的模块不存在时,一般都是路径获取不正确导致未正常找到相应的模块。可以在代码首部新增一行 print (sys.path),把路径全部打印出来确认,查看是否包含模块目录,不包含,所以就报找不到该模块。

解决方案:

注意:根据前面介绍的os和sys的区别了解,这里导入的是当前系统路径的父目录,而非当前文件的父目录。意思就是你需要cd 到该脚本文件路径下执行才没问题,即此时体统路径和脚本路径一致,而如果你在该文件的父目录执行该文件,如python train/train.py, 则又会报错。

错入如下:

正确:

 

参考文章:

转载地址:http://ekldi.baihongyu.com/

你可能感兴趣的文章
移植QT
查看>>
如此调用
查看>>
计算机的发展史
查看>>
带WiringPi库的交叉编译如何处理一
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Spring事务的七种传播行为
查看>>
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>
欢迎使用CSDN-markdown编辑器
查看>>
Android计算器实现源码分析
查看>>
Android系统构架
查看>>
Android 跨应用程序访问窗口知识点总结
查看>>
各种排序算法的分析及java实现
查看>>
SSH框架总结(框架分析+环境搭建+实例源码下载)
查看>>
js弹窗插件
查看>>
自定义 select 下拉框 多选插件
查看>>
js判断数组内是否有重复值
查看>>
js获取url链接携带的参数值
查看>>
gdb 调试core dump
查看>>
gdb debug tips
查看>>