如何解决相对导入

How to resolve relative import

目前,我正在为我的测试玩弄绝对和相对导入。下面是文件结构的例子。

文件结构:

project/
        main_script.py
        input1.csv
        input2.csv
        
        Testing/
                test_script.py
                test_input1.csv
                test_input2.csv
                test_output.csv

main_script.py

中的代码
def function1():
    {function definition here}

def function2():
    {function definition here}

def function3():
    {function definition here}

test_script.py

中的代码
import pytest 
from ..main_script import function1, function2, function3

我在 运行 test_script:

时得到的输出
ImportError: attempted relative import with no known parent package

根据我从不同来源阅读的示例和我看过的教程,这应该是我的问题的解决方案,但出现了更多错误。这是为什么?

您可以尝试以下任何一种方式 -

  1. 使用绝对导入
  2. 使用标准方式导入并从关键字中删除 示例:导入 main_script.function1
  3. 将它放入你的包的 init.py - 对于在 Python 3.6 中工作的相对导入 - 导入 os, 系统; sys.path.append(os.path.dirname(os.path.realpath(文件))) 现在使用正常的导入语句,如: 来自 main_script 导入函数 1

Reference Attached

如果这对您有帮助,请告诉我。 快乐学习!!