sbin/create_python_env.py
changeset 33 b25bb1dd177c
parent 32 e28089cee66c
child 34 05d10640919a
--- 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()