# HG changeset patch # User ymh # Date 1275325509 -7200 # Node ID b25bb1dd177c699f37ea8bed4d0593d99559b9ad # Parent e28089cee66c1f1a4bb4e36d3bd01ef045ec6361 improve virtualenv script diff -r e28089cee66c -r b25bb1dd177c sbin/create_python_env.py --- a/sbin/create_python_env.py Mon May 31 11:14:39 2010 +0200 +++ b/sbin/create_python_env.py Mon May 31 19:05:09 2010 +0200 @@ -8,6 +8,7 @@ - distribute - psycopg2 requires the PostgreSQL libpq libraries and the pg_config utility +- virtualenv --distribute --no-site-packages venv """ import os @@ -21,11 +22,12 @@ import virtualenv # things to install -# - psycopg2 -# - PIL -# - pylucene -# - pyxml -# - 4Suite-xml +# - psycopg2 -> pip +# - PIL -> pip +# - pyxml -> pip +# - 4Suite-xml - easy_install ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2 +# - pylucene - script + EXTRA_TEXT = """ @@ -34,13 +36,11 @@ import tarfile import urllib +4SUITE_XML_URL = 'ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2' +PY_LUCENE_URL = 'http://apache.crihan.fr/dist/lucene/pylucene/pylucene-3.0.1-1-src.tar.gz' + def extend_parser(parser): - parser.add_option( - '--svn', - metavar='DIR_OR_URL', - dest='fassembler_svn', - default=FASS_SVN_LOCATION, - help='Location of a svn directory or URL to use for the installation of fassembler') + pass def adjust_options(options, args): if not args: @@ -55,6 +55,7 @@ args[0] = join(base_dir, venv_name) + def after_install(options, home_dir): base_dir = os.path.dirname(home_dir) src_dir = join(home_dir, 'src') @@ -63,39 +64,52 @@ ensure_dir(tmp_dir) #logger.indent += 2 try: - call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'psycopg2'], - cwd=os.path.abspath(tmp_dir), - filter_stdout=filter_python_develop, - show_stdout=False) - call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pyxml'], + call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'pip')), ,'-E '+ os.path.abspath(home_dir), 'psycopg2', 'pil', 'pyxml'], cwd=os.path.abspath(tmp_dir), filter_stdout=filter_python_develop, show_stdout=False) - call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), '4suite-xml'], - cwd=os.path.abspath(tmp_dir), - filter_stdout=filter_python_develop, - show_stdout=False) - call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pil'], - cwd=os.path.abspath(tmp_dir), - filter_stdout=filter_python_develop, - show_stdout=False) - call_subprocess([os.path.abspath(join(home_dir, 'bin', 'easy_install')), 'pil'], + call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'easy_install')), 4SUITE_XML_URL], cwd=os.path.abspath(tmp_dir), filter_stdout=filter_python_develop, show_stdout=False) -#get pylucene -#cd jcc -#install jcc -#cd pylucene -#instqll pylucene + #get pylucene + pylucene_src = os.path.join(src_dir,"pylucene.tar.gz") + urllib.urlretrieve(PY_LUCENE_URL, pylucene_src) + tf = tarfile.open(pylucene_src,'r:gz') + tf.extractall(os.path.join(src_dir,"pylucene")) + tf.close() + #install jcc + call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'python')), 'setup.py', 'install'], + cwd=os.path.abspath(os.path.join(src_dir,"pylucene","pylucene-3.0.1-1","jcc")), + filter_stdout=filter_python_develop, + show_stdout=False) + #install pylucene + #modify makefile +#PREFIX_PYTHON=os.path.abspath(fassembler_dir) +#ANT=ant +#PYTHON=$(PREFIX_PYTHON)/bin/python +#osx 10.5 10.6 32-64 bit +#JCC=$(PYTHON) -m jcc.__main__ --shared --arch x86_64 --arch i386 +#NUM_FILES=2 + +#linux +#JCC=$(PYTHON) -m jcc --shared +#NUM_FILES=2 + +# windows +#JCC=$(PYTHON) -m jcc --shared +#NUM_FILES=3 + + +#install pylucene #delete src #call_subprocess([os.path.abspath(join(home_dir, 'bin', 'python')), 'setup.py', 'develop'], # cwd=os.path.abspath(fassembler_dir), # filter_stdout=filter_python_develop, # show_stdout=False) finally: - logger.indent -= 2 + #logger.indent -= 2 script_dir = join(base_dir, 'bin') logger.notify('Run "%s Package" to install new packages that provide builds' % join(script_dir, 'easy_install')) @@ -117,7 +131,8 @@ """ def main(): - text = virtualenv.create_bootstrap_script(EXTRA_TEXT, python_version='2.4') + python_version = ".".join(map(str,sys.version_info[0:2])) + text = virtualenv.create_bootstrap_script(EXTRA_TEXT, python_version=python_version) if os.path.exists(script_name): f = open(script_name) cur_text = f.read()