From 035d64301ddc65a3a38b379fd4b5383368b322da 2017-04-12 08:42:28 From: Thomas Kluyver Date: 2017-04-12 08:42:28 Subject: [PATCH] Remove unused code for building Windows installers --- diff --git a/scripts/ipython_win_post_install.py b/scripts/ipython_win_post_install.py deleted file mode 100755 index 99e3952..0000000 --- a/scripts/ipython_win_post_install.py +++ /dev/null @@ -1,137 +0,0 @@ -#!python -"""Distutils post installation script for Windows. - -http://docs.python.org/2/distutils/builtdist.html#the-postinstallation-script - -""" - - -import os -import sys -import shutil - -try: - import setuptools - have_setuptools = True -except ImportError: - have_setuptools = False - - -pjoin = os.path.join - -# suffix for start menu folder names -pyver = "(Py%i.%i %i bit)" % (sys.version_info[0], sys.version_info[1], - (32, 64)[sys.maxsize > 2**32]) - - -def mkshortcut(target, description, linkdir, arguments="", iconpath='', - workdir="%HOMEDRIVE%%HOMEPATH%", iconindex=0): - """Make a shortcut if it doesn't exist and register its creation.""" - filename = pjoin(linkdir, description + '.lnk') - description = "%s %s" % (description, pyver) - create_shortcut(target, description, filename, arguments, workdir, - iconpath, iconindex) - file_created(filename) - - -def arguments(scriptsdir, script, scriptargs=''): - """Return command line arguments to be passed to the python executable.""" - cmdbase = suffix(pjoin(scriptsdir, script)) - if have_setuptools: - cmdbase += '-script.py' - return '"%s" %s' % (cmdbase, scriptargs) - - -def suffix(s): - """Add '3' suffix to programs for Python 3.""" - if sys.version_info[0] == 3: - s = s + '3' - return s - - -def install(): - """Routine to be run by the win32 installer with the -install switch.""" - # Get some system constants - python = pjoin(sys.prefix, 'python.exe') - pythonw = pjoin(sys.prefix, 'pythonw.exe') - - if not have_setuptools: - # This currently doesn't work without setuptools, - # so don't bother making broken links - print("Setuptools is required to" - " create Start Menu items.", file=sys.stderr) - print("Re-run this installer after installing" - " Setuptools to get Start Menu items.", file=sys.stderr) - return - - # Lookup path to common startmenu ... - ip_start_menu = pjoin(get_special_folder_path('CSIDL_COMMON_PROGRAMS'), - 'IPython %s' % pyver) - - # Create IPython entry ... - if not os.path.isdir(ip_start_menu): - os.mkdir(ip_start_menu) - directory_created(ip_start_menu) - - # Create .py and .bat files to make things available from - # the Windows command line. Thanks to the Twisted project - # for this logic! - programs = [ - 'ipython', - 'iptest', - ] - programs = [suffix(p) for p in programs] - scripts = pjoin(sys.prefix, 'scripts') - if not have_setuptools: - # only create .bat files if we don't have setuptools - for program in programs: - raw = pjoin(scripts, program) - bat = raw + '.bat' - py = raw + '.py' - # Create .py versions of the scripts - shutil.copy(raw, py) - # Create .bat files for each of the scripts - bat_file = file(bat, 'w') - bat_file.write("@%s %s %%*" % (python, py)) - bat_file.close() - - # Create Start Menu shortcuts - iconpath = pjoin(scripts, 'ipython.ico') - mkshortcut(python, 'IPython', ip_start_menu, - arguments(scripts, 'ipython'), iconpath) - mkshortcut(python, 'IPython (pylab mode)', ip_start_menu, - arguments(scripts, 'ipython', '--pylab'), iconpath) - - iconpath = pjoin(scripts, 'ipython_nb.ico') - mkshortcut(python, 'IPython Notebook', ip_start_menu, - arguments(scripts, 'ipython', 'notebook'), iconpath) - - mkshortcut(pythonw, 'IPython Documentation', ip_start_menu, - '-m webbrowser -t "http://ipython.org/documentation.html', - iconpath='url.dll') - - # Disable pysh Start item until the profile restores functionality - # Most of this code is in IPython/deathrow, and needs to be updated - # to 0.11 APIs - #mkshortcut(python, 'IPython%s (command prompt mode)', ip_start_menu, - # arguments(scripts, 'ipython', 'profile=pysh --init')) - - -def remove(): - """Routine to be run by the win32 installer with the -remove switch.""" - pass - - -# main() -if len(sys.argv) > 1: - if sys.argv[1] == '-install': - try: - install() - except OSError: - print("Failed to create Start Menu items, try running the" - " installer as administrator.", file=sys.stderr) - elif sys.argv[1] == '-remove': - remove() - else: - print("Script was called with option %s" % sys.argv[1], - file=sys.stderr) diff --git a/setup.py b/setup.py index a8a719e..0a0dbe1 100755 --- a/setup.py +++ b/setup.py @@ -239,23 +239,7 @@ if 'setuptools' in sys.modules: ], } setup_args['extras_require'] = extras_require - requires = setup_args['install_requires'] = install_requires - - # Script to be run by the windows binary installer after the default setup - # routine, to add shortcuts and similar windows-only things. Windows - # post-install scripts MUST reside in the scripts/ dir, otherwise distutils - # doesn't find them. - if 'bdist_wininst' in sys.argv: - if len(sys.argv) > 2 and \ - ('sdist' in sys.argv or 'bdist_rpm' in sys.argv): - print("ERROR: bdist_wininst must be run alone. Exiting.", file=sys.stderr) - sys.exit(1) - setup_args['data_files'].append( - ['Scripts', ('scripts/ipython.ico', 'scripts/ipython_nb.ico')]) - setup_args['scripts'] = [pjoin('scripts','ipython_win_post_install.py')] - setup_args['options'] = {"bdist_wininst": - {"install_script": - "ipython_win_post_install.py"}} + setup_args['install_requires'] = install_requires else: # scripts has to be a non-empty list, or install_scripts isn't called