#!/usr/bin/env python # -*- coding: utf-8 -*- """Setup script for exe distribution of IPython (does not require python). - Requires py2exe - install pyreadline in ipython root directory by running: 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 # # 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 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 if 'setuptools' in sys.modules: # setuptools config for egg building egg_extra_kwds = { 'entry_points': { 'console_scripts': [ 'ipython = IPython.ipapi:launch_new_instance', 'pycolor = IPython.PyColorize:main' ]} } scriptfiles = [] # eggs will lack docs, examples XXX not anymore #datafiles = [('lib', 'IPython/UserConfig', cfgfiles)] else: 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'], } }, 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 = ['ipython.py'], # extra params needed for eggs **egg_extra_kwds )