前言:
使用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的名字改掉。
最后
以上就是典雅小兔子最近收集整理的关于关于python调用父级、表兄弟级目录包遇到的问题前言:一、先看一下文件之间的结构二、正确的方法:三、解释一下原因:的全部内容,更多相关关于python调用父级、表兄弟级目录包遇到内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复