代码之家  ›  专栏  ›  技术社区  ›  Raptor

Python脚本在Jupyter笔记本中找不到模块文件夹

  •  0
  • Raptor  · 技术社区  · 4 年前

    我有一个简单的Python脚本。

    主要的py

    try:
        from Core.banner import banner
    except:
        print("Core folder not found")
        exit()
    

    核心/横幅。py

    def banner():
        print("I am a banner")
    

    文件夹结构

    Core/
      __init__.py
      banner.py
    main.py
    

    当我跑的时候 !python main.py 它说:

    找不到核心文件夹

    但我确认了 Core/banner.py 存在于 %ls -al .

    但是,相同的脚本可以在本地计算机上运行,不会出现问题。

    Jupyter笔记本的完整内容和输出如下:

    !git clone https://github.com/xxx/myproject.git
    cloning into 'myproject'...
    remote: Enumerating objects: 82, done.
    remote: Counting objects: 100% (10/10), done.
    remote: Compressing objects: 100% (9/9), done.
    remote: Total 82 (delta 1), reused 10 (delta 1), pack-reused 72
    Unpacking objects: 100% (82/82), done.
    total 267592
    %cd myproject
    %ls -al
    /home/jovyan/myproject
    total 36
    drwxr-xr-x 4 jovyan users  4096 Jan 31 01:55 ./
    drwxrwxrwx 7 root   root   4096 Jan 31 01:55 ../
    drwxr-xr-x 2 jovyan users  4096 Jan 31 01:55 Core/
    drwxr-xr-x 8 jovyan users  4096 Jan 31 01:55 .git/
    -rwxr-xr-x 1 jovyan users 15082 Jan 31 01:55 main.py*
    !python main.py
    Core folder not found
    

    我错过了什么?

    注意:已尝试重新启动内核。

    2 回复  |  直到 4 年前
        1
  •  1
  •   ksohan    4 年前

    我认为你需要创造一个 __init__.py 归档 Core 文件夹,然后使用以下代码。

    import sys
    sys.path.append('./Core/')
    

    应该是这样的:

    try:
        import sys
        sys.path.append('./Core/')
        from Core.banner import banner
    except:
        print("Core folder not found")
        exit()
    
        2
  •  0
  •   Chrispresso    4 年前

    你想治疗 Core 作为一个模块,但您需要添加 __init__.py 在Core下归档,以实现以下目标:

    Core/
      __init__.py
      banner.py
    main.py
    
    推荐文章