windows下Django报错:assert sys.modules[modname] is not old_mod

项目环境

Windows Server2008 R2 + Python3.6 + Django2.1 + Apache2.4

报错操作

Apache下配置了两个Django项目,Apache启动未报错

先访问网站A正常,再访问网站B失败。

重启Apache后,先访问B正常,再访问A失败

大概就是先访问的网站是可以正常使用的,再访问的那个就不行。

报错信息

windows下Django报错:assert sys.modules[modname] is not old_mod

错误居然是系统库的问题。

经过一番查找,终于在国外一个技术网站找到了原因:

大致意思是多次导入导致的,因为有两个项目,某个文件被系统多次加载运行导致报错

解决方法

找到图中报错的那个文件,注释断言语句

windows下Django报错:assert sys.modules[modname] is not old_mod

将4句断言语句全部注释,再在上面的判断中添加pass即可完美解决问题。