~ipython-dev/ipython/0.10.1

« back to all changes in this revision

Viewing changes to exesetup.py

  • Committer: Fernando Perez
  • Date: 2008-06-02 01:26:30 UTC
  • mfrom: (0.1.130 ipython-local)
  • Revision ID: fernando.perez@berkeley.edu-20080602012630-m14vezrhydzvahf8
Merge in all development done in bzr since February 16 2008.

At that time, a clean bzr branch was started from the SVN tree, but
without SVN history.  That SVN history has now been used as the basis
of this branch, and the development done on the history-less BZR
branch has been added and is the content of this merge.  

This branch will be the new official main line of development in
Launchpad (equivalent to the old SVN trunk).

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# -*- coding: utf-8 -*-
 
3
r"""Setup script for exe distribution of IPython (does not require python).
 
4
 
 
5
- Requires py2exe
 
6
 
 
7
- install pyreadline *package dir* in ipython root directory by running:
 
8
  
 
9
svn co http://ipython.scipy.org/svn/ipython/pyreadline/branches/maintenance_1.3/pyreadline/  
 
10
wget http://ipython.scipy.org/svn/ipython/pyreadline/branches/maintenance_1.3/readline.py
 
11
 
 
12
OR (if you want the latest trunk):  
 
13
  
 
14
svn co http://ipython.scipy.org/svn/ipython/pyreadline/trunk/pyreadline
 
15
 
 
16
- Create the distribution in 'dist' by running "python exesetup.py py2exe"
 
17
 
 
18
- Run ipython.exe to go.
 
19
 
 
20
"""
 
21
 
 
22
#*****************************************************************************
 
23
#       Copyright (C) 2001-2005 Fernando Perez <fperez@colorado.edu>
 
24
#
 
25
#  Distributed under the terms of the BSD License.  The full license is in
 
26
#  the file COPYING, distributed as part of this software.
 
27
#*****************************************************************************
 
28
 
 
29
# Stdlib imports
 
30
import os
 
31
import sys
 
32
 
 
33
from glob import glob
 
34
 
 
35
 
 
36
# A few handy globals
 
37
isfile = os.path.isfile
 
38
pjoin = os.path.join
 
39
 
 
40
from distutils.core import setup
 
41
from distutils import dir_util
 
42
import py2exe
 
43
 
 
44
# update the manuals when building a source dist
 
45
# Release.py contains version, authors, license, url, keywords, etc.
 
46
execfile(pjoin('IPython','Release.py'))
 
47
 
 
48
# A little utility we'll need below, since glob() does NOT allow you to do
 
49
# exclusion on multiple endings!
 
50
def file_doesnt_endwith(test,endings):
 
51
    """Return true if test is a file and its name does NOT end with any
 
52
    of the strings listed in endings."""
 
53
    if not isfile(test):
 
54
        return False
 
55
    for e in endings:
 
56
        if test.endswith(e):
 
57
            return False
 
58
    return True
 
59
 
 
60
 
 
61
egg_extra_kwds = {}
 
62
 
 
63
# Call the setup() routine which does most of the work
 
64
setup(name             = name,
 
65
    options   = {
 
66
    'py2exe': {
 
67
        'packages' : ['IPython', 'IPython.Extensions', 'IPython.external',
 
68
                      'pyreadline'],
 
69
        'excludes' : ["Tkconstants","Tkinter","tcl",'IPython.igrid','wx',
 
70
                      'wxPython','igrid', 'PyQt4', 'zope', 'Zope', 'Zope2',
 
71
                      '_curses','enthought.traits','gtk','qt', 'pydb','idlelib',                      
 
72
                      ]
 
73
                    
 
74
                     }
 
75
    },
 
76
    version          = version,
 
77
    description      = description,
 
78
    long_description = long_description,
 
79
    author           = authors['Fernando'][0],
 
80
    author_email     = authors['Fernando'][1],
 
81
    url              = url,
 
82
    download_url     = download_url,
 
83
    license          = license,
 
84
    platforms        = platforms,
 
85
    keywords         = keywords,
 
86
    console          = ['ipykit.py'],
 
87
    
 
88
    # extra params needed for eggs
 
89
    **egg_extra_kwds                        
 
90
    )
 
91
 
 
92
minimal_conf = """
 
93
import IPython.ipapi
 
94
ip = IPython.ipapi.get()
 
95
 
 
96
ip.load('ipy_kitcfg')
 
97
import ipy_profile_sh
 
98
"""
 
99
 
 
100
if not os.path.isdir("dist/_ipython"):
 
101
    print "Creating simple _ipython dir"
 
102
    os.mkdir("dist/_ipython")
 
103
    open("dist/_ipython/ipythonrc.ini","w").write("# intentionally blank\n")
 
104
    open("dist/_ipython/ipy_user_conf.py","w").write(minimal_conf)
 
105
    if os.path.isdir('bin'):
 
106
        dir_util.copy_tree('bin','dist/bin')