ModuleNotFoundError 即使 __init__.py
ModuleNotFoundError even with __init__.py
我有一个结构如下的项目:
.
└── project
├── assignment01
| ├── __init__.py
| └── old_file.py
|
├── assignment02
| ├── __init__.py
| └── new_file.py
└── __init__.py
我需要使用我在文件 new_file.py
的第一个作业中实现的函数,我按如下方式导入:
from assignment01 import old_file as assgn1
目前,我正在 PyCharm 中编程,IDE 没有显示任何警告或问题。它甚至自动完成上面的代码。尽管如此,当我想在命令行中 运行 new_file.py
时,它会抛出以下错误:
ModuleNotFoundError: No module named 'assignment01'
您需要通过将 __init__.py
放入 project
然后执行 from ..assignment01 import old_file
来使两个作业成为一个包的一部分。您将需要从上面调用您的代码 project
(python -m project.assignment1.newfile.main
) ,因此 python 拿起外包装并能够解析 ..
。或者您可以省略 ..
并直接从 project
调用,如其他答案中所述。无论如何,我们的想法是将 assignment0
放在 python 可以 找到 并导入的地方。
或者您需要将 project
添加到您的 sys.path
:
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
您当前的导入失败,因为 python 正在 assignment02
中查找 assignment01
,当然,失败了。
在 project
目录中添加另一个 __init__.py
。
此外,使用您的代码,从您的 project
目录中尝试 运行 new_file.py
。
示例:
python assignment02/new_file.py
我有一个结构如下的项目:
.
└── project
├── assignment01
| ├── __init__.py
| └── old_file.py
|
├── assignment02
| ├── __init__.py
| └── new_file.py
└── __init__.py
我需要使用我在文件 new_file.py
的第一个作业中实现的函数,我按如下方式导入:
from assignment01 import old_file as assgn1
目前,我正在 PyCharm 中编程,IDE 没有显示任何警告或问题。它甚至自动完成上面的代码。尽管如此,当我想在命令行中 运行 new_file.py
时,它会抛出以下错误:
ModuleNotFoundError: No module named 'assignment01'
您需要通过将 __init__.py
放入 project
然后执行 from ..assignment01 import old_file
来使两个作业成为一个包的一部分。您将需要从上面调用您的代码 project
(python -m project.assignment1.newfile.main
) ,因此 python 拿起外包装并能够解析 ..
。或者您可以省略 ..
并直接从 project
调用,如其他答案中所述。无论如何,我们的想法是将 assignment0
放在 python 可以 找到 并导入的地方。
或者您需要将 project
添加到您的 sys.path
:
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent))
您当前的导入失败,因为 python 正在 assignment02
中查找 assignment01
,当然,失败了。
在 project
目录中添加另一个 __init__.py
。
此外,使用您的代码,从您的 project
目录中尝试 运行 new_file.py
。
示例:
python assignment02/new_file.py