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

Python script cannot find module folder in Jupyter notebook

我有一个简单的 Python 脚本。

main.py

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

Core/banner.py

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

文件夹结构

Core/
  __init__.py
  banner.py
main.py

当我运行!python main.py时,它说:

Core folder not found

但我通过 %ls -al 确认 Core/banner.py 存在。

但是,相同的脚本可以 运行 在本地机器上没有问题。

完整的 Jupyter notebook 内容和输出是:

!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

我错过了什么?

注意:已尝试重启内核。

您正试图将 Core 视为一个模块,但您需要在 Core 下添加一个 __init__.py 文件才能完成此操作:

Core/
  __init__.py
  banner.py
main.py

我认为您需要在 Core 文件夹中创建一个 __init__.py 文件,然后使用以下代码。

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()