Une solution à mettre dans baz.py :
# activate python 3 behabvior in Python 2
from __future__ import absolute_import
try:
# we are doing python pkg/x.py
import baz
# we are doing python foo.py
except ImportError:
from . import baz
Mais utiliser python -m "pkg.bar" me parait plus approprié.
Cependant je ne ferais ni l'un ni l'autre personnellement. Je mets toujours tout en import absolu, ça évite bien des problèmes.
Dans ton cas précis, je ferais des sous commandes de foo.py de sorte que :
python script.py foo # import foo et fait son job
python script.py baz # import baz et fait son job
python script.py bar # import baz et fait son job
Avec une lib du genre : https://pypi.python.org/pypi/begins/0.9
Cela a le bénéfice de documenter les paramètres de la commande, permettre de taper --help et voir ce qui est permis, avoir juste un seul point d'entrée à retenir, etc.
En prime, on peut hooker le resultat à dans setup.py pour que ça installe une commande au niveau du système à l'installation du package si besoin.