##// END OF EJS Templates
Put togehter the few win32 call into some functions (sleep, runCommand, restoreConsoleFocus) to ease the port to other platforms.
Put togehter the few win32 call into some functions (sleep, runCommand, restoreConsoleFocus) to ease the port to other platforms.

File last commit:

r1033:fea50de7
r1284:2fef15a8
Show More
exesetup.py
106 lines | 3.2 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
# -*- coding: utf-8 -*-
r"""Setup script for exe distribution of IPython (does not require python).
- Requires py2exe
- install pyreadline *package dir* in ipython root directory by running:
svn co http://ipython.scipy.org/svn/ipython/pyreadline/branches/maintenance_1.3/pyreadline/
wget http://ipython.scipy.org/svn/ipython/pyreadline/branches/maintenance_1.3/readline.py
OR (if you want the latest trunk):
svn co http://ipython.scipy.org/svn/ipython/pyreadline/trunk/pyreadline
- Create the distribution in 'dist' by running "python exesetup.py py2exe"
- Run ipython.exe to go.
"""
#*****************************************************************************
# Copyright (C) 2001-2005 Fernando Perez <fperez@colorado.edu>
#
# Distributed under the terms of the BSD License. The full license is in
# the file COPYING, distributed as part of this software.
#*****************************************************************************
# Stdlib imports
import os
import sys
from glob import glob
# A few handy globals
isfile = os.path.isfile
pjoin = os.path.join
from distutils.core import setup
from distutils import dir_util
import py2exe
# update the manuals when building a source dist
# Release.py contains version, authors, license, url, keywords, etc.
execfile(pjoin('IPython','Release.py'))
# A little utility we'll need below, since glob() does NOT allow you to do
# exclusion on multiple endings!
def file_doesnt_endwith(test,endings):
"""Return true if test is a file and its name does NOT end with any
of the strings listed in endings."""
if not isfile(test):
return False
for e in endings:
if test.endswith(e):
return False
return True
egg_extra_kwds = {}
# Call the setup() routine which does most of the work
setup(name = name,
options = {
'py2exe': {
'packages' : ['IPython', 'IPython.Extensions', 'IPython.external',
'pyreadline'],
'excludes' : ["Tkconstants","Tkinter","tcl",'IPython.igrid','wx',
'wxPython','igrid', 'PyQt4', 'zope', 'Zope', 'Zope2',
'_curses','enthought.traits','gtk','qt', 'pydb','idlelib',
]
}
},
version = version,
description = description,
long_description = long_description,
author = authors['Fernando'][0],
author_email = authors['Fernando'][1],
url = url,
download_url = download_url,
license = license,
platforms = platforms,
keywords = keywords,
console = ['ipykit.py'],
# extra params needed for eggs
**egg_extra_kwds
)
minimal_conf = """
import IPython.ipapi
ip = IPython.ipapi.get()
ip.load('ipy_kitcfg')
import ipy_profile_sh
"""
if not os.path.isdir("dist/_ipython"):
print "Creating simple _ipython dir"
os.mkdir("dist/_ipython")
open("dist/_ipython/ipythonrc.ini","w").write("# intentionally blank\n")
open("dist/_ipython/ipy_user_conf.py","w").write(minimal_conf)
if os.path.isdir('bin'):
dir_util.copy_tree('bin','dist/bin')