2017-08-25 26 views
0

我有一个文件结构如下图所示导入类,的Python 3.6从并行文件夹

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

里面firstFile.py,我有一个名为classMath我要导入这个类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的目录添加到系统属性environment variable下的path中,并使用import sys & sys.path.append('\Users\Name\Documents\Python\MainFolder')

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

回答

0

可能有两个问题。首先是你的进口声明。进口声明应该是

from FirstFolder.firstFile import Math 

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

在Linux和基于UNIX的系统,你可以做到这一点暂时与

出口PYTHONPATH = $ PYTHONPATH命令行:/路径/到/ MainFolder

在窗口

集PYTHONPATH =“% PATH%; C:\路径\为\ MainFolder”

如果要永久设置,使用SETX而不是一套

+0

哦,是啊。道歉。进口声明在我的问题上是错字。我会尝试设置PYTHONPATH。谢谢。 – Dan