Hi, I have a collection of Python scripts I'm using to load various bits of data into a database.
I'd like to move some of the common functions (e.g. to setup loggers, reading in configuration etc.) into a common file, and import them from there. I've created empty __init__.py files, and my current directory structure looks something like this: foo_loading/ __init__.py common/ common_foo.py em_load/ __init__.py config.yaml sync_em.py pg_load/ __init__.py config.yaml sync_pg.py So from within the sync_em.py script, I'm trying to import a function from foo_loading/common/common_foo.py. from ..common.common_foo import setup_foo_logging I get the error: ValueError: Attempted relative import in non-package If I change directories to the parent of "foo_loading", then run python -m foo_loading.em_load.sync_em sync_em.py it works. However, this seems a bit roundabout, and I suspect I'm not doing things correctly. Ideally, I want a user to be able to just run sync_em.py from it's own directory, and have it correctly import the logging/config modules from common_foo.py, and just work. What is the correct way to achieve this? Secondly, if I want to move all of the config.yaml files to a common foo_loading/config.yaml, or even foo_loading/config/config.yaml, what is the correct way to access this from within the scripts? Should I just be using "../", or is there a better way? Cheers, Victor -- https://mail.python.org/mailman/listinfo/python-list