关于python导入模块

问题描述:

文件架构

root # 根目录

dir # 子目录
__ init __.py
a.py (from b import *)
b.py

main.py (from dir import a)

python main.py
抛出异常:ModuleNotFoundError: No module named 'b'

原因

python 解释器启动后,module named ‘b’ 不在搜索路径里,搜索路径可通过打印 sys.path 查看,sys.path 只到 ‘/root’ 这一层,未到 ’/root/dir’。

解决办法

第一种:main.py 中手动添加 ‘/root/dir’ 到 sys.path

import sys
sys.path.append('/root/dir')

第二种:把 dir 整个文件夹封装成包(非模块,注意区分包和模块)

具体操作(许多第三方包都是如此)
1. __int__.py 加入
from . import a
from . import b

2. a.py 导入 b.py 写法
from .b import *

注:包中的模块 a.py 不能单独当作脚本执行,即

在a.py 中添加如下运行,执行不通过
if __name__ == '__main__':
    main()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值