S_pectator 2022-09-19 15:13 采纳率: 70.6%
浏览 27
已结题

python3包绝对导入问题

python3的包导入, 纠察语法细节时发现了一个问题

包目录如图

img

绝对导入的规则是可以导入当前模块对应顶级包的同级别模块的, 所以
file11.py
from pk3 import *
该导入是有效的, 但是同目录下使用ipython的交互环境

1 from pk3 import *
ModuleNotFoundError: No module named 'pk3'

求解,为什么 ? 我的理解交互环境不是相当于当前目录下的可交互式的.py文件吗, 为什么静态的.py文件的导入可以成功, 动态不行?

  • 写回答

2条回答 默认 最新

  • 爱音斯坦牛 全栈领域优质创作者 2022-09-19 15:40
    关注

    python项目导包很容易出现问题,这一块儿会出现找不到父包,或者说没有这个模块,或者说循环导入问题。
    我的建议是导包,不要尽量使用相对导入,相对导入很容易报错,至于绝对导入也出现错误的话,将同级目录的父目录加入路径就行

    # 将pk11上上级目录demo1添加到path,添加之前可以输出sys.path看他在里面吗,么有就添加!
    import sys,os
    sys.path.append(os.path.abspath(os.path.join(os.getcwd(), "../..")
    # print(sys.path)
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月28日
  • 已采纳回答 9月20日
  • 创建了问题 9月19日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度