I couldn\'t find answer after having read all the following:
runpy
Another observation is that __package__ is set to None when executing the script directly and to the package name when using -m (using the empty string when the module isn't included in any package, so it's still different from None).
__package__
None
-m