我有以下这个包(和工作目录):
WorkingDirectory--
|--MyPackage--
| |--__init__.py
| |--module1.py
| |--module2.py
|
|--notebook.ipynb
在__init__.py
中我有:
import module1
import module2
如果我尝试将MyPackage导入到我的笔记本中:
import MyPackage as mp
我会得到ModuleNotFoundError:找不到名为 'module1' 的模块
的错误。 但是,如果我在笔记本外部执行脚本:如果我在相同的目录中创建test.py
并执行与笔记本中相同的操作,则导入可以正常工作。 如果我在__init__.py
中使用完全限定名称(import MyPackage.module1
),它将在笔记本中运行。
不同导入行为的原因是什么?
我已确认笔记本的工作目录为WorkingDirectory
。
---更新---------
精确错误为:
C:\Users\Me\Documents\Working Directory\MyPackage\__init__.py in <module>()
---> 17 import module1
ModuleNotFoundError: No module named 'module1'
我的问题与可能的重复问题略有不同:
笔记本能够找到该软件包,但只是无法加载模块。这是通过将
module1
替换为MyPackage.module1
发现的,并且表明可能与PATH
无关。我进入了
WorkingDirectory
并在那里启动了服务器。工作目录应该是包含我的软件包的文件夹。