from pdb import set_trace as breakpoint, pm import os import pip import sys import distutils.sysconfig oldawehome = os.environ['AWEHOME'] aweversion, awetarget = sys.argv[1:] sys.path.insert(0, os.path.join(oldawehome, aweversion)) from common.util.targetplatform import targetplatform destdir = os.path.join(oldawehome, targetplatform(), aweversion, awetarget) instantclientdir = os.path.join(oldawehome, targetplatform(), 'instantclient_11_2') bindir = os.path.join(destdir, 'bin') assert '/' not in aweversion assert '/' not in awetarget if sys.version_info.major == 2: import virtualenv virtualenv.create_environment(destdir, no_pip=False, symlink=True) elif sys.version_info.major == 3: import venv venv.create(destdir, with_pip=True, symlinks=True) else: raise NotImplementedError("Python {0}".format(sys.version_info.major)) aweecustomize = '''\ # This file was generated by {} import os, matplotlib os.environ['AWETARGET'] = '{}' os.environ['AWEVERSION'] = '{}' matplotlib.rcParams['image.origin'] = 'lower' matplotlib.rcParams['interactive'] = True del matplotlib, os '''.format(__file__, awetarget, aweversion) open(os.path.join(distutils.sysconfig.get_python_lib(False,False,destdir),'awecustomize.py'),'w').write(aweecustomize) if not os.path.exists(os.path.join(bindir, 'awe')): os.symlink('python', os.path.join(bindir, 'awe')) pipcmd = os.path.join(bindir,'pip') requirements = 'http://drive.astro-wise.org/awesoft/awex/{version.major}.{version.minor}/{aweversion}/{awetarget}/requirements.txt'.format(version=sys.version_info,aweversion=aweversion,awetarget=awetarget) env = dict( ORACLE_HOME = instantclientdir, LD_RUN_PATH = instantclientdir, ) pip.utils.call_subprocess([pipcmd, 'install', '--disable-pip-version-check', '--no-cache-dir', '-r', requirements], extra_environ=env)