关于python调用父级、表兄弟级目录包遇到的问题

前言:

使用python构建稍微大一点的工程的时候,有时会产生多个层级的py文件,而这些属于不同层级的py文件之间可能存在相互调用,在运行主程序的时候没有问题,而在运行单个文件的时候就出现了问题。本文主要解决 ImportError: attempted relative import with no known parent package 这种问题。

一、先看一下文件之间的结构

为了能够证明调用成功,在每个对应的py文件中,加入如下代码:

尝试调用一下

出错了

初步分析:

pycharm 会自动分析代码中的语法错误,并且会自动搜索相应的包是否存在,这里没有任何提示和警告,说明从语法上来讲没有错误。

二、正确的方法:

那个abc可以取任意的名字,输出结果,调用成功。

三、解释一下原因:

python调用包时,要从当前的sys.path中查找,当前的sys.path中除了python安装路径下的函数库包路径外,还会将当前的工程路径的根目录添加到sys.path中。

此外,函数包的调用是通过名字 pakg1.pakg1_1.fct1_1_1 来进行的,如下:

所以要想调用表兄级别的包,需要将name的名字改掉。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两只蜡笔的小新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值