在大型项目和"ModuleNotFoundError"中导入 Python 模块



在项目中导入python模块时,我遇到了一个相当著名的问题。

编写此代码是为了复制现有情况:

  • multiply_func.py
def multiplier(num_1, num_2):
return num_1 * num_2
  • power_func.py
from math_tools import multiplier
def pow(num_1, num_2):
result = num_1
for _ in range(num_2 - 1):
result = multiplier(num_1, result)
return result

项目结构:

project/
│   main.py    
│
└─── tools/
│   __init__.py
│   power_func.py
│
└─── math_tools/
│   __init__.py
│   multiply_func.py

我已经将这些行添加到__init__文件中,以使导入更容易:

  • __init__.py(数学工具(:
from .multiply_func import multiplier
  • __init__.py(工具(:
from .power_func import pow
from .math_tools.multiply_func import multiplier

这是我的主文件。

  • main.py
from tools import pow
print(pow(2, 3))

每当我运行它时,都会出现以下错误:

>>> ModuleNotFoundError: No module named 'math_tools'

我试着操纵sys.path,但没能解决这个令人困惑的问题。我很感激你的帮助。提前谢谢!

你在"power_func.py";文件你必须使用。在math_tools之前引用当前目录模块。

更新";power_func.py";如下图所示,它运行得很好。

from .math_tools import multiplier

最新更新