如何使python 3.6导入文件相对于文件位置?

时间:2017-11-10 22:06:36

标签: python python-3.x

我有一个简单的Python 3.6程序,我用以下目录结构编写

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

我编写了Input_Reader.py文件,以便它具有以下结构。

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 """

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

1 个答案:

答案 0 :(得分:2)

使用from . import File_Reader as fr