If I execute main.py it works fine, the problem is when I execute demo2.py
|myPackage
|subPackage
demo.py
demo2.py
If you drop the ., it should work. demo2.py becomes:
from demo import demoprint # instead of `from .demo import demoprint`
def demo2_print():
print("demo2")
demoprint()
demo2_print()
Now you can run %run ludikDriver/demo2.py in ipython for instance and you get:
demo2
demo
For more details, the section "Imports" of this article might help.