--- 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()