Python 在同一级别导入脚本,但也从顶层导入脚本

Python 在同一级别导入脚本,但也从顶层导入脚本,python,path,python-import,directory-structure,Python,Path,Python Import,Directory Structure,我有以下文件夹结构: top folder - final_program.py - scripts - __init__.py - extract.py - estimations.py - calculate_all.py 最终的_program.py在calculate_all.py中运行一个函数。所以,我有这个: from scripts.calculate_all import get_info import scripts.estimations i

我有以下文件夹结构:

top folder

 - final_program.py
 - scripts
   - __init__.py
   - extract.py
   - estimations.py
   - calculate_all.py
最终的_program.py在calculate_all.py中运行一个函数。所以,我有这个:

from scripts.calculate_all import get_info
import scripts.estimations
import scripts.extract
但是,calculate_all.py脚本同时使用extract.py和estimations.py脚本。因此,在calculate_all.py中,我有:

from scripts.calculate_all import get_info
import scripts.estimations
import scripts.extract
直接运行final_program.py时,我没有遇到任何错误。伟大的但是,我也希望能够直接运行calculate_all.py。当我尝试执行此操作时,会出现以下错误:

ModuleNotFoundError:没有名为“scripts.estimations”的模块


我如何解决这个问题

以下是对我有效的方法:

  • 在顶层中添加了
    \uuuuu init\uuuuu.py
  • 在“所有”中:
来自。进口估算
从…起进口提取物
  • 在最终课程中:
import scripts.calculate\u all
导入脚本.extract
使用
-m
标志运行python文件(将模块作为脚本运行)

对于final_程序:
python-m final_程序


对于calculate\u all:
python-m脚本。calculate\u all
calculate\u all.py

import .estimations
import .extract

我做这件事的时候会犯语法错误。我也试过了。“导入摘录”但随后我得到一个ImportError:无法导入名称“摘录”。我得到了相同的错误,但经过一些实验后,我得到了一些工作(答案已编辑)。让我知道这是否对你有效。在脚本中?您是指脚本文件夹中的init.py文件还是其他文件?很抱歉,这是一个输入错误-我指的是
final\u program