Login

set_paths

Author:
amitu
Posted:
October 14, 2008
Language:
Python
Version:
1.0
Tags:
django cron scripts
Score:
0 (after 2 ratings)

To make all scripts relocatable.

The layout of my project is:

/some/path/myproject/
/some/path/myproject/some_script
/some/path/myproject/some_other_script
/some/path/myproject/set_paths.py
/some/path/myproject/setttings.py
/some/path/myproject/lib/ # some external libraries/apps checked in with my project.
/some/path/myproject/myapp/ # my apps etc.

This way myproject folder can be moved anywhere on the file system, and calling right path, settings.py is used.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# content of set_paths.py:
import sys, os
import path # http://www.jorendorff.com/articles/python/path/
def set_paths(f):
    p = path.path(f)
    sys.path.append(str(p.parent.joinpath("..").abspath()))
    sys.path.append(str(p.parent.parent.joinpath("lib/").abspath()))
    os.environ["DJANGO_SETTINGS_MODULE"] = "myproject.settings" 

# usage: 
# contents of file "some_script":
#!/usr/bin/python

import set_paths
set_paths.set_paths(__file__) # this must be the first thing in the script.

from myproject.myapp.models import MyModel
print MyModel.objects.count() # whatever.

More like this

  1. manage.py with magic python path by bikeshedder 8 years ago
  2. Command Line Script Launcher by dakrauth 6 years, 12 months ago
  3. djangopath: conveniently set sys.path and DJANGO_SETTINGS_MODULE by alia_khouri 6 years, 11 months ago
  4. Update All Apps to Latest Revision by dedaluz 6 years, 11 months ago
  5. Update All Apps to Latest Revision by ericflo 7 years ago

Comments

Please login first before commenting.