2017-11-10 55 views
1

我有,我有以下目录结构我如何使python 3.6相对于文件位置导入文件?

src/ 
    Main.py 
File_Readers/ 
    File_Reader.py 
    Input_Reader.py 

我写的Input_Reader.py文件,以便它具有以下结构编写一个简单的Python 3.6的程序。

import File_Reader as fr 

def read_finance_history(file_name, path_length) 
    """ 
    Function in this section reads in a .csv and 
    places the data into a dictionary 
    """ 
    return Dictionary 

class FileReaderTest(unites.TestCase) 
    def test_read_finance_history(self): 
     """ Unit test code in this section """ 

我单位在File_Readers目录测试Input_Reader.py文件,它工作得很好。但是,当我通过来自Main.py文件的导入语句调用Input_Reader.py程序时,它无法识别在Input_Reader.py文件中调用的File_Reader模块。显然,代码引用了Main.py位置中的所有内容,我可以通过将Input_Reader.py文件中的导入语句更改为from File_Readers import File_Reader as fr来解决问题,但我无法从File_Readers目录运行单元测试。如何强制Input_Reader.py文件中的导入语句始终相对于该文件的位置导入?

回答

2

使用from . import File_Reader as fr

+0

这让我当我打电话从'Main.py'在'src'目录要导入的文件,但如果我直接从'Input_Reader.py'文件运行单元测试在'File_Reader'目录中。 – Jon