django中数据迁移报错:ModuleNotFoundError: No module named ‘xxx‘

报错截图:

django中数据迁移报错:ModuleNotFoundError: No module named ‘xxx‘_第1张图片

定位问题:

出现此问题,肯定是在apps中的应用项目文件,没有在 setting.py 配置路径,无法找到。

 

解决:

在setting.py中 引入 sys模块,然后 在python搜索路径中添加 apps文件目录:

import sys
import os
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

 

补充小知识点:

sys.path 

(1)定义:

- 模块搜索路径。

当我们是加载一个模块的时候,Python会在指定的路径下搜索对应的 .py 文件,如果找不到,就会报错!

(2)Python解释器搜索目录:

默认情况下,Python解释器会搜索当前的目录所有已安装的内置模块第三方模块,而搜索的径路存正是放在sys模块的path变量中:

import sys
print(sys.path)
['G:\\mypython\\lianxi', 'G:\\mypython\\lianxi', 'E:\\pythonEditer\\PyCharm 2019.1.3\\helpers\\pycharm_display', ··· ]

(3)sys.path 是一个列表

所以我们可以使用insert或者append向列表中添加自己的搜索目录。

注:【使用insert(0, 'path')python解释器会优先搜索此路径目录】

 

你可能感兴趣的:(Django,python)