Similar to diamond inheritance problem with classes, I have a problem similar to importing modules in Python. I have,
'main.py' outside the folder 'mypackage'.
#!/usr/bin/env python3
import mypackage.display_functions as displayFunctions
import mypackage.computations as comp
if __name__=="__main__":
a = comp.do_some_computations()
displayFunctions.do_some_work(a)
where computations.py
and display_functions.py
are located in mypackage
. I am not sure if I need __init__.py
?
#!/usr/bin/env python3
import display_functions as displayFunctions
class computations:
def do_some_computations():
pass
if __name__=="__main__":
C = computations()
a = C.do_some_computations()
displayFunctions.do_some_work(a)
'displayFunctions.py'
#!/usr/bin/env python3
import matplotlib
def do_some_work(a):
pass
python3 computations.py
works while doing python3 main.py
it complains about import mypackage.computations as comp
cannot import display_functions in file computations.py. Basically,
from mypackage.computations as comp
File "~/mypackage/computations.py", line X, in <module>
import display_functions as displayFunctions
ModuleNotFoundError: No module named 'display_functions'
I want to use display_functions.py in computations.py as I want to locally test and display some stuff in there i.e. python3 computations.py
should run on its own and pass the test return in its __name__
part.
How do I make this happen in a simple, non-intrusive way?