Python模块导入ImportError

Python模块以及导入出现 ImportError: No Module named ‘’‘xxx’’'的问题

此文介绍一下Python中的模块导入方法及PyCharm中导入模块时出现ImportError的解决方法

Python模块及导入

Python中,每个py文件被称之为模块,每个具有__init__.py文件的目录被称之为包。只要模块或者包所在的目录在sys.path中,就可以使用import模块或者import包来使用。如果要使用的模块(py文件)和当前模块在同一目录,只要import相应的文件名即可,比如在a.py中使用b.py:import b即可;但如果要import一个不同目录的文件,首先需要使用sys.path.append方法将b.py所在目录加入到搜索目录中,然后进行import即可。如下图所示:
Python模块导入ImportError
上图所示中当前文件为main.py。在main.py中导入同级目录下的config.py、metrics.py和DataReader.py;导入不同级目录下的DeepFM模块

PyCharm中导入模块时出现ImportError的解决方案

pycharm默认项目的根目录为source目录,所以import使用绝对路径而不是相对路径的话,就会从项目的根目录中查找,而不是我们希望其中的/src目录,所以import不成功

同级目录导入

选中当前.py文件所在的包,右键选择Mark Directory as——》Sources Root
Python模块导入ImportError

不同级目录导入

Python模块导入ImportError
绿色框所标注的