ipython_win_post_install.py
85 lines
| 2.6 KiB
| text/x-python
|
PythonLexer
/ scripts / ipython_win_post_install.py
Ville M. Vainio
|
r1032 | #!python | ||
"""Windows-specific part of the installation""" | ||||
import os, sys, shutil | ||||
def mkshortcut(target,description,link_file,*args,**kw): | ||||
"""make a shortcut if it doesn't exist, and register its creation""" | ||||
create_shortcut(target, description, link_file,*args,**kw) | ||||
file_created(link_file) | ||||
def install(): | ||||
"""Routine to be run by the win32 installer with the -install switch.""" | ||||
from IPython.Release import version | ||||
# Get some system constants | ||||
prefix = sys.prefix | ||||
python = prefix + r'\python.exe' | ||||
# Lookup path to common startmenu ... | ||||
ip_dir = get_special_folder_path('CSIDL_COMMON_PROGRAMS') + r'\IPython' | ||||
# Some usability warnings at installation time. I don't want them at the | ||||
# top-level, so they don't appear if the user is uninstalling. | ||||
try: | ||||
import ctypes | ||||
except ImportError: | ||||
print ('To take full advantage of IPython, you need ctypes from:\n' | ||||
'http://sourceforge.net/projects/ctypes') | ||||
try: | ||||
import win32con | ||||
except ImportError: | ||||
print ('To take full advantage of IPython, you need pywin32 from:\n' | ||||
'http://starship.python.net/crew/mhammond/win32/Downloads.html') | ||||
try: | ||||
import readline | ||||
except ImportError: | ||||
print ('To take full advantage of IPython, you need readline from:\n' | ||||
'http://sourceforge.net/projects/uncpythontools') | ||||
ipybase = '"'+prefix+r'\scripts\ipython"' | ||||
# Create IPython entry ... | ||||
if not os.path.isdir(ip_dir): | ||||
os.mkdir(ip_dir) | ||||
directory_created(ip_dir) | ||||
# Create program shortcuts ... | ||||
f = ip_dir + r'\IPython.lnk' | ||||
a = ipybase | ||||
mkshortcut(python,'IPython',f,a) | ||||
f = ip_dir + r'\pysh.lnk' | ||||
a = ipybase+' -p sh' | ||||
mkshortcut(python,'IPython command prompt mode',f,a) | ||||
f = ip_dir + r'\scipy.lnk' | ||||
a = ipybase+' -pylab -p scipy' | ||||
mkshortcut(python,'IPython scipy profile',f,a) | ||||
# Create documentation shortcuts ... | ||||
t = prefix + r'\share\doc\ipython-%s\manual.pdf' % version | ||||
f = ip_dir + r'\Manual in PDF.lnk' | ||||
mkshortcut(t,r'IPython Manual - PDF-Format',f) | ||||
t = prefix + r'\share\doc\ipython-%s\manual\manual.html' % version | ||||
f = ip_dir + r'\Manual in HTML.lnk' | ||||
mkshortcut(t,'IPython Manual - HTML-Format',f) | ||||
# make ipython.py | ||||
shutil.copy(prefix + r'\scripts\ipython', prefix + r'\scripts\ipython.py') | ||||
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': | ||||
install() | ||||
elif sys.argv[1] == '-remove': | ||||
remove() | ||||
else: | ||||
print "Script was called with option %s" % sys.argv[1] | ||||