Python 同级目录(兄弟目录)调用方式

 更新时间:2022年02月11日 10:37:34   作者:Dawn死小烦  
这篇文章主要介绍了Python 同级目录(兄弟目录)调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

同级目录(兄弟目录)调用

看书看得好好的,一写代码就出错!!!

这个问题是大家初学Python的时候会遇到的一个很常见的问题,然后我们去搜网上的教程,自己试一试还是都是BUG,常见的就是这两个命令:

ModuleNotFoundError: No module named 'XXXXXXX'

ImportError: attempted relative import with no known parent package

教程一般都是很详细的给你分析,然后给你井不同文件的调用,其实整那么多没事的干嘛是不是,我们要的只是解决办法。

详细解释

注意

1、我只说兄弟的文件夹下面的调用,父子啥的__init__.py 搜一搜就可以了

2、不要用Vscode ,Vscode的环境变量你是整不明白的

3、我没太多的时间花费在博客上,所以遇到啥才会去扩充啥,大家也可以在下面留言遇到的问题和解决的办法

4、可能我说的也会有错误,但我主要的是解决我自己遇到的问题

开始上代码

目录结构

在这里插入图片描述

a1.py

def a1_print():
    print("a1_print  OK")

b1.py

from ..a.a1 import a1_print
a1_print()

运行b1.py,报错

在这里插入图片描述

ImportError: attempted relative import with no known parent package

原因

文件夹被python解释器视作package需要满足两个条件:

  • 文件夹中必须有__init__.py文件,该文件可以为空,但必须存在。不能作为顶层模块来执行该文件夹中的py文件,即使用…的文件夹外边还需要有包含__init__.py的文件夹 (即不能作为主函数的入口)
  • 主就是 不能作为主函数的入口,兄弟引用不能作为入口,意思是你不能直接运行b1.py,你可以在c1.py 这样弄,b1.py 不可以 不可以 不可以

我非要咋解决

修改b1.py

import sys# 加了这了
sys.path.append("..")  ## 这个
from a.a1 import a1_print  #改了这个
a1_print()

输出

在这里插入图片描述

BUG

Pycharm

在这里插入图片描述

我觉得还是不管它吧,能运行就不错了,没有啥影响。

不要用Vscode 不要用Vscode 不要用Vscode 

import同级目录报错

pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->Sources Root将当前工作的文件夹加入source_path就可以了。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python使用pyyaml模块处理yaml数据

    Python使用pyyaml模块处理yaml数据

    这篇文章主要介绍了Python使用pyyaml模块处理yaml数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • NumPy 数组使用大全

    NumPy 数组使用大全

    这篇文章主要介绍了NumPy 数组使用大全,在本教程中,你将学习如何在 NumPy 数组上以多种方式添加、删除、排序和操作元素。 文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • python使用正则表达式检测密码强度源码分享

    python使用正则表达式检测密码强度源码分享

    客户系统升级,要求用户密码符合一定的规则,即:包含大小写字母、数字、符号,长度不小于8,于是先用python写了个简单的测试程序:
    2014-06-06
  • Python 自动化处理Excel和Word实现自动办公

    Python 自动化处理Excel和Word实现自动办公

    毫无疑问,Microsoft Excel 和 Word 是我们日常办公中使用最广泛的办公软件。将反复、复杂的工作自动化处理,是我们需要思考的问题,本篇文章帮你解决这个问题
    2021-11-11
  • Python中字典的基础知识归纳小结

    Python中字典的基础知识归纳小结

    这篇文章主要介绍了Python中字典的基础知识归纳小结,都是Python入门学习中的基本知识,值得反复巩固:)需要的朋友可以参考下
    2015-08-08
  • Python中Dataframe数据排序方法(含实例讲解)

    Python中Dataframe数据排序方法(含实例讲解)

    在进行数据分析操作时,经常需要对数据按照某行某列排序,或者按照多行多列排序,以及按照索引值排序等等,下面这篇文章主要给大家介绍了关于Python中Dataframe数据排序方法的相关资料,需要的朋友可以参考下
    2023-02-02
  • python重要函数eval多种用法解析

    python重要函数eval多种用法解析

    这篇文章主要介绍了python重要函数eval多种用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • django-filter和普通查询的例子

    django-filter和普通查询的例子

    今天小编就为大家分享一篇django-filter和普通查询的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-08-08
  • Python如何根据照片修改时间重命名并排序详解

    Python如何根据照片修改时间重命名并排序详解

    重命名操作是我们开发中经常遇到的一个需求,下面这篇文章主要给大家介绍了关于Python如何根据照片修改时间重命名并排序的相关资料,需要的朋友可以参考下
    2021-05-05
  • 如何利用Python将字典转为成员变量

    如何利用Python将字典转为成员变量

    当我们在Python中写一个class时,如果有一部分的成员变量需要用一个字典来命名和赋值,此时应该如何操作呢?这篇文章主要给大家介绍了关于如何利用Python将字典转为成员变量的相关资料,需要的朋友可以参考下
    2022-03-03

最新评论