- June 13, 2007
- python path magic pythonpath sys.path
- 6 (after 6 ratings)
I tend to have all my python code together in a 'python' directory.
e.g. a typical project layout of mine looks like:
/python /python/myproject - project python code /python/django - local copy of django /python/foolib - some third party library /media /templates ...
Since I don't want to set the python path explicitly I just assume the 'manage.py' is in the right place and use its file variable to set up the python path correctly.
I use the same trick for my settings.py for setting MEDIA_ROOT and TEMPLATE_DIRS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#!/usr/bin/env python # magic python path from os.path import abspath, dirname import sys sys.path.insert(0, dirname(dirname(abspath(__file__)))) from django.core.management import execute_manager try: import settings # Assumed to be in the same directory. except ImportError: import sys sys.stderr.write("Error: Can't find the file 'settings.py' in the directory containing %r. It appears you've customized things.\nYou'll have to run django-admin.py, passing it your settings module.\n(If the file settings.py does indeed exist, it's causing an ImportError somehow.)\n" % __file__) sys.exit(1) if __name__ == "__main__": execute_manager(settings)