python模块导入&&动态导入

本文详细介绍了Python中模块的导入机制,包括如何处理包和子模块的导入问题,动态导入的格式和注意事项,以及import和from...import的区别。强调了在导入时遵循的规则,如import时点的左边必须是包,from...import后不能带点。还讨论了__init__.py文件的作用,以及不同导入方式的应用场景,包括全量导入、局部导入和可选导入。
摘要由CSDN通过智能技术生成
  • 目录结构如下
    在这里插入图片描述
    1.如果想在bin.py中导入all/m.py文件

bin.py是主执行文件,所以执行时python只会把他的目录binDir/加入到环境变量sys.path中,导入是否成功只能看被导入的包路径是否在binDir/下,显然是找不到all/m.py的,要想找到m.p y,必须要把all的目录“模块&包&导入”加入到sys.path

# bin.py
import os, sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# 然后再导入:注意使用from XX.sd import XX时,把我一个原则,from的.左边必须是包,import的XX可以是文件,类,变量
from all import m

2.在第一步的基础上如果m.py中又有导入import cal的操作,还是会报错,找不到cal模块

原因:from all import m时会加载并执行m.py中的顶层代码,即会把import cal加载到主执行文件bin.py执行,虽然第一步把“模块&包&导入”加入到了sys.path环境变量中了,但是也不能这样直接导入,在m.py文件中将导入方式修改成在主执行文件中可见的方式:from all import cal即可解决

3.动态导入
(1)格式

# 格式:导入字符串格式的模块module1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值