开发者

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

开发者 https://www.devze.com 2022-12-10 12:40 出处:网络 作者: Dawn死小烦
目录同级目录(兄弟目录)调用详细解释开始上代码import同级目录报错同级目录(兄弟目录)调用
目录
  • 同级目录(兄弟目录)调用
    • 详细解释
    • 开始上代码
  • import同级目录报错

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

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

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

    ModuleNotFoundError: No module named 'XXXXXXX'

    ImportError: attempted relative import with no known parent package

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

    详细解释

    注意

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

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

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

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

    开始上代码

    目录结构

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

    a1.py

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

    b1.pxaTMdty

    from ..a.a1 import a1_print
    a1_print()
    

    运行b1.py,报错

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

    ImportError: attewww.cppcns.commpted 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()
    

    输出

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

    BUG

    Pycharm

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

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

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

    import同级目录报错

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

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

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

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

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号