'Python unit test cannot find module [duplicate]

I have a question about how to correctly import module in python unit test module. this is my directory structure

project -
        | _ Library _
        |            |_ TimeCalculator.py
        | _ Test _
                  |_ UnittestFile.py

and I want to test the function in TimeCalculator.py so in UnittestFile.py I write

from .Library.TimeCalculator import TimeCalculator

but the error come out saying ImportError: attempted relative import with no known parent package
I want to ask how to import without setting the PATH in this case.



Solution 1:[1]

As stated in python - Running unittest with typical test directory structure - Stack Overflow, you should create a __init__.py file in both folders, Library and Test.

For your specific structure:

project
??? Library
?   ??? __init__.py         # make it a package
?   ??? TimeCalculator.py
??? test
    ??? __init__.py         # also make test a package
    ??? UnittestFile.py

Then, you should remove the first . from your import sentence:

from Library.TimeCalculator import TimeCalculator

PD: Not sure if is a repeated question, because the answer is almost the same than python - Running unittest with typical test directory structure - Stack Overflow but is sightly different because he has to remove the first .

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1