Jupyter ImportError:无法导入名称

时间:2019-09-18 07:53:28

标签: python-3.x jupyter-notebook

我具有以下项目结构:

path_to_dir/
│
├── a_notebook.ipynb
└── testCases_v2.py

在.py文件中,我定义了几个函数。

我正试图将它们导入笔记本中,如下所示:

from testCases_v2 import layer_sizes_test_case

但是,我得到了:

  

ImportError:无法从“ testCases_v2”(/ path_to_dir / testCases_v2.py)导入名称“ layer_sizes_test_case”

我什至尝试将目录添加到系统路径:

import os
import sys
module_path = os.path.abspath(os.path.join('path_to_dir'))
if module_path not in sys.path:
   sys.path.append(module_path)

但是问题仍然存在。

如何解决? (而且,是的,我检查了要导入的函数的名称是否拼写正确)

1 个答案:

答案 0 :(得分:0)

假设你有这个:

path_to_dir/
│
├── a_notebook.ipynb
└── tests
       |
       └── testCases_v2.py

在 testCases_v2 中,您有一个同名的类。

  1. 您必须手动导入希望 Jupyter 导入的模块 在 sys.path 中的帐户在这种情况下,模块是 'tests' 和路径 你必须包括'path_to_dir'

      import sys  
      sys.path.insert(0, 'path/to/dir')
    
  2. 在 py 文件所在的模块中,添加一个空的 __init__.py

     path_to_dir/
     │
     ├── a_notebook.ipynb
     └── tests
         |
         ├──testCases_v2.py
         └── __init__.py
    

您现在应该可以通过执行以下操作来导入它:

from tests.testCases_v2 import testCases_v2 

python doc about modules 可能会派上用场