2017-08-25 49 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