#!/usr/bin/env python import os import sys import re from subprocess import Popen, PIPE DEPS_DIR = 'deps' NUMPY_VER = '1.6.1' numpy_src = 'numpy-%s.tar.gz' % NUMPY_VER numpy_url = 'http://downloads.sourceforge.net/project/numpy/NumPy/%s/numpy-%s.tar.gz' % (NUMPY_VER, NUMPY_VER) funcdesigner_src = 'FuncDesigner.zip' funcdesigner_url = 'http://trac.openopt.org/openopt/changeset/latest/PythonPackages/FuncDesigner?old_path=%2F&format=zip' openopt_src = 'OpenOpt.zip' openopt_url = 'http://trac.openopt.org/openopt/changeset/latest/PythonPackages/OpenOpt?old_path=%2F&format=zip' def indirdo(dr, fn): owd = os.getcwd() os.chdir(dr) fn() os.chdir(owd) def get_file(url, fname): Popen(['wget', '-O', fname, url]).wait() if not os.path.exists(DEPS_DIR): os.makedirs(DEPS_DIR) os.chdir(DEPS_DIR) if not os.path.exists(numpy_src): get_file(numpy_url, numpy_src) if not os.path.exists(funcdesigner_src): get_file(funcdesigner_url, funcdesigner_src) if not os.path.exists(openopt_src): get_file(openopt_url, openopt_src) if not os.path.exists(numpy_src.replace('.tar.gz', '')): Popen(['tar', '-xvzf', numpy_src]).wait() if not os.path.exists('PythonPackages/FuncDesigner'): Popen(['unzip', funcdesigner_src]).wait() if not os.path.exists('PythonPackages/OpenOpt'): Popen(['unzip', openopt_src]).wait() try: exec 'import numpy' except: indirdo('numpy-%s' % NUMPY_VER, lambda: Popen(['sudo', 'python', 'setup.py', 'install']).wait()) try: exec 'import FuncDesigner' except: indirdo('PythonPackages/FuncDesigner', lambda: Popen(['sudo', 'python', 'setup.py', 'install']).wait()) try: exec 'import gtk.gtkgl' except: Popen(['sudo', 'apt-get', 'install', 'python-gtkglext1']).wait()