Python 3.6从并行文件夹导入类

时间:2017-08-25 17:59:34

标签: python-3.x python-import

我有一个文件结构,如下所示,

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

在firstFile.py中,我有class名为Math,我想在secondFile.py中导入此类。

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的目录添加到系统属性path下的environment variable并使用{{1 }& import sys

不幸的是,我发现的所有这些解决方案都无效。如果有人可以突出我的错误或建议其他解决方案,那将是伟大的。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

可能存在两个问题。第一个是你的import语句。 import语句应为

from FirstFolder.firstFile import Math

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

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

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

export PYTHONPATH = $ PYTHONPATH:/ path / to / MainFolder

在Windows上

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

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