Python 3.6 从并行文件夹中导入 class

Python 3.6 Importing a class from a parallel folder

我的文件结构如下图,

MainFolder
        __init__.py
        FirstFolder
                  __init__.py
                  firstFile.py
        SecondFolder
                  __init__.py
                  secondFile.py

在 firstFile.py 中,我有一个名为 Mathclass,我想在 secondFile.py.

中导入这个 class

firstFile.py

代码
class Math(object):

    def __init__(self, first_value, second_value):

        self.first_value = first_value
        self.second_value = second_value

    def addition(self):

        self.total_add_value = self.first_value + self.second_value
        print(self.total_add_value)

    def subtraction(self):

        self.total_sub_value = self.first_value - self.second_value
        print(self.total_sub_value)

secondFile.py

代码
from FirstFolder.firstFile import Math

Math(10, 2).addition()
Math(10, 2).subtraction()

当我尝试 运行 secondFile.py 时出现此错误:ModuleNotFoundError: No module named 'First'

我正在使用 Windows 并且 MainFolder 位于我的 C 盘中,在 C:\Users\Name\Documents\Python\MainFolder

我尝试过的可能解决方案是,为所有主文件夹和子文件夹创建空的 __init__.py,将 MainFolder 的目录添加到系统属性 environment variable 下的 path 并使用 import sys & sys.path.append('\Users\Name\Documents\Python\MainFolder').

不幸的是,我找到的所有这些解决方案都不起作用。如果有人可以向我强调我的错误或提出其他解决方案,那就太好了。任何帮助将不胜感激!

可能有两个问题。第一个是您的导入声明。导入语句应该是

from FirstFolder.firstFile import Math

第二个可能是您的 PYTHONPATH 环境变量不包含您的 MainFolder。

在 linux 和基于 unix 的系统上,您可以使用

在命令行上临时执行此操作

导出 PYTHONPATH=$PYTHONPATH:/path/to/MainFolder

在 windows

设置 PYTHONPATH="%path%;C:\path\to\MainFolder"

如果要永久设置,请使用 setx 而不是 set