django不可以可以导入当目录下的模块而自己的测试程序可以导入当前模块

本文探讨了Python中的导入机制,重点讲解了相对导入和绝对导入的区别。绝对导入从sys.modules开始查找,而相对导入依赖于当前路径是否在sys.path中。当django项目导入本地模块失败可能因为sys.path未包含当前目录,而在个人测试程序中成功是因为运行时sys.path包含了当前目录。建议大型项目使用相对导入(.开头)确保导入当前目录模块,以项目根路径为基准进行绝对导入。
摘要由CSDN通过智能技术生成

开头带点的是相对导入,不带.的是绝对导入,
对于绝对导入来说,第一步是到sys.modules 查看之前有没有进行加载过,接着看内置模块有没有,接着看sys.path,django导入当前目录下模块或者包不成功是因为sys.path中在导入的时候不含当前路径,
而在我自己写的测试程序中,造成可以导入这一现象的原因是:sys.path中有当前目录

好像运行的时候会将当前文件的路径添加到sys.path中

所以说对于大的项目来说,导入当前目录下模块的时候应该加上.
绝对导入项目中包的时候应该以项目根路径为出发点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值