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

时间:2019-04-05 20:11:40

标签: python path python-import directory-structure

我具有以下文件夹结构:

top folder

 - final_program.py
 - scripts
   - __init__.py
   - extract.py
   - estimations.py
   - calculate_all.py

final_program.py在calculate_all.py中运行一个函数。所以,我有这个:

from scripts.calculate_all import get_info

但是,calculate_all.py脚本同时使用extract.py和estimations.py脚本。因此,在calculate_all.py中,我有以下内容:

import scripts.estimations
import scripts.extract

直接运行final_program.py时,我没有遇到任何错误。大。但是,我也希望能够直接运行calculate_all.py。当我尝试时,出现此错误:

  

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

我该如何解决?

2 个答案:

答案 0 :(得分:2)

这对我有用:

  • 在顶级
  • 中添加了__init__.py
  • 在calculate_all中:
from . import estimations
from . import extract
  • 在final_program中:
import scripts.calculate_all
import scripts.extract

使用-m标志运行python文件(将模块作为脚本运行)。

对于final_program:python -m final_program
对于calculate_all:python -m scripts.calculate_all

答案 1 :(得分:0)

用于calculate_all.py

import .estimations
import .extract