1. 问题描述
假如我们的目录结构是这样:

项目名称是HelloWorld,在项目主目录下面新建一个文件夹test_dir,接着在HelloWorld/test_dir目录下面新建两个文件: HelloWorld/test_dir/hello1.py和HelloWorld/test_dir/hello2.py。
hello1.py中插入如下代码:1
2
3
4import hello2 as h2
print(h2.hello_world())
print(h2.nihao())
hello2.py中插入如下代码:1
2
3
4
5def nihao():
return 'nihao'
def hello_world():
return 'hello world'
此时,会发现在hello1.py中一直红线提示No module named hello2:

但是如果我们运行hello.py发现是能够正常输出结果的。
2. 解决方法
在左侧工程目录树中,选中test_dir,右键,然后选择 Mark directory as,再选择source root,然后就会发现先前的红线错误提示已经没有了。

3. More…
如果我们是在当前工程主目录下面新建两个文件HelloWorld/hello1.py和HelloWorld/hello2.py,两个.py文件的代码内容和之前一样,这时候却又不会出现No module named hello2这种错误了。