|
1 from distutils.core import setup |
|
2 from distutils.command.install import INSTALL_SCHEMES |
|
3 import os |
|
4 import sys |
|
5 |
|
6 # Tell distutils to put the data_files in platform-specific installation |
|
7 # locations. See here for an explanation: |
|
8 # http://groups.google.com/group/comp.lang.python/browse_thread/thread/35ec7b2fed36eaec/2105ee4d9e8042cb |
|
9 for scheme in INSTALL_SCHEMES.values(): |
|
10 scheme['data'] = scheme['purelib'] |
|
11 |
|
12 # Compile the list of packages available, because distutils doesn't have |
|
13 # an easy way to do this. |
|
14 packages, data_files = [], [] |
|
15 root_dir = os.path.dirname(__file__) |
|
16 len_root_dir = len(root_dir) |
|
17 django_dir = os.path.join(root_dir, 'django') |
|
18 |
|
19 for dirpath, dirnames, filenames in os.walk(django_dir): |
|
20 # Ignore dirnames that start with '.' |
|
21 for i, dirname in enumerate(dirnames): |
|
22 if dirname.startswith('.'): del dirnames[i] |
|
23 if '__init__.py' in filenames: |
|
24 package = dirpath[len_root_dir:].lstrip('/').replace('/', '.') |
|
25 packages.append(package) |
|
26 else: |
|
27 data_files.append([dirpath, [os.path.join(dirpath, f) for f in filenames]]) |
|
28 |
|
29 # Small hack for working with bdist_wininst. |
|
30 # See http://mail.python.org/pipermail/distutils-sig/2004-August/004134.html |
|
31 if len(sys.argv) > 1 and sys.argv[1] == 'bdist_wininst': |
|
32 for file_info in data_files: |
|
33 file_info[0] = '/PURELIB/%s' % file_info[0] |
|
34 |
|
35 setup( |
|
36 name = "Django", |
|
37 version = "0.96.1", |
|
38 url = 'http://www.djangoproject.com/', |
|
39 author = 'Lawrence Journal-World', |
|
40 author_email = 'holovaty@gmail.com', |
|
41 description = 'A high-level Python Web framework that encourages rapid development and clean, pragmatic design.', |
|
42 packages = packages, |
|
43 data_files = data_files, |
|
44 scripts = ['django/bin/django-admin.py'], |
|
45 ) |