8. python项目模块和包导入问题

  基础知识还没学好,就需要写python脚本,模块和包的导入遇到很多问题,百度看了很多方法,但总有遗漏之处,模模糊糊整了很久.


1. 模块介绍

名称英文名介绍
模块moudle一个.py文件
package一个包含多个模块的文件夹,并且文件夹下有一个__init__.py文件

【注】:python3.3不再需要一个空的__init__.py文件

2. 模块导入

对于一个这样的python目录结构:有main函数,模块和包组成
在这里插入图片描述
现在一共存在几种情况的导入问题:

问题描述方法
同目录模块导入main中导入模块moudleimport moudle
子目录模块导入main中导入模块P1Moudle1import package1.P1Moudle1
包中同目录模块导入P1Moudle1中导入模块P1Moudle2import package1.P1Moudle2
兄弟目录模块导入[注1]P1Moudle1中导入模块P2Moudle2import package2.P2Moudle1
父目录模块导入P1Moudle1中导入模块moudleimport moudle

[注1]兄弟目录和父目录需要先设置路径:

BASE = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, BASE)

可能有更好的方法等待发现。

3. 减少依赖

需求引入:P1Moudle1导入P1Moudle2P2Moudle2导入P1Moudle1.
导入方法:import P1Moudle2     import package1.P1Moudle1
产生问题:P2Moudle2导入P1Moudle1时,由于P1Moudle1导入了P1Moudle2,所以P2Moudle2在继续导入P1Moudle2时:导入语句就明显不对了。
解决方法:尽量减少同层次的导入,或者使用导入函数而不是导入整个包的方式在这里插入图片描述

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值