基本解决方案:
1、文件夹中必须有__init__.py
文件,该文件可以为空,但必须存在该文件。
python导入同级别模块很方便:
import xxx
要导入下级目录页挺方便,需要在下级目录中写一个__init__.py文件
from dirname import xxx
要导入上级目录,可以使用sys.path:
首先sys.path的作用是:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块
所以改变思路,直接把上级目录加到sys.path里:sys.path.append('../')
from fatherdirname import xxx
部分同学还会出现问题:
用了上面的方法,还是会报错,提示找不到model。这时候可能的原因:
我用的vscode。
Python在调试的时候,基础路径的 终端的位置。就是cmd命令行最前面打印的目录。通过cd调整这个目录到和程序中路径一致的位置。
更好的解决办法,
用下面的代码获取到文件的动态的绝对路径,基于此,在代码中调整其他文件的相对路径。
import os,sys
parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,parentdir)