sbin/virtualenv/create_python_env.py
changeset 2 3e2968de0994
parent 1 eb9188f2ee4f
equal deleted inserted replaced
1:eb9188f2ee4f 2:3e2968de0994
    40 EXTRA_TEXT  = "URLS = { \n"
    40 EXTRA_TEXT  = "URLS = { \n"
    41 
    41 
    42 EXTRA_TEXT += "    'DISTRIBUTE' : { 'setup': 'distribute', 'url': 'http://pypi.python.org/packages/source/d/distribute/distribute-0.6.13.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"distribute-0.6.13.tar.gz"))+"'},\n"
    42 EXTRA_TEXT += "    'DISTRIBUTE' : { 'setup': 'distribute', 'url': 'http://pypi.python.org/packages/source/d/distribute/distribute-0.6.13.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"distribute-0.6.13.tar.gz"))+"'},\n"
    43 EXTRA_TEXT += "    'PSYCOPG2' : { 'setup': 'psycopg2','url': 'http://initd.org/pub/software/psycopg/psycopg2-2.2.1.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"psycopg2-2.2.1.tar.gz"))+"'},\n"
    43 EXTRA_TEXT += "    'PSYCOPG2' : { 'setup': 'psycopg2','url': 'http://initd.org/pub/software/psycopg/psycopg2-2.2.1.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"psycopg2-2.2.1.tar.gz"))+"'},\n"
    44 EXTRA_TEXT += "    'MYSQL' : { 'setup': 'mysql-python', 'url': 'http://sourceforge.net/projects/mysql-python/files/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz/download', 'local' : '"+ os.path.abspath(os.path.join(src_base,"MySQL-python-1.2.3c1.tar.gz"))+"'},\n"
    44 EXTRA_TEXT += "    'MYSQL' : { 'setup': 'mysql-python', 'url': 'http://sourceforge.net/projects/mysql-python/files/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz/download', 'local' : '"+ os.path.abspath(os.path.join(src_base,"MySQL-python-1.2.3c1.tar.gz"))+"'},\n"
    45 EXTRA_TEXT += "    'FOURSUITE_XML' : { 'setup': '4Suite-XML', 'url': 'ftp://ftp.4suite.org/pub/4Suite/4Suite-XML-1.0.2.tar.bz2', 'local': '"+ os.path.abspath(os.path.join(src_base,"4Suite-XML-1.0.2.tar.bz2"))+"'},\n"
       
    46 EXTRA_TEXT += "    'PYLUCENE' : { 'setup': 'http://apache.crihan.fr/dist/lucene/pylucene/pylucene-3.0.1-1-src.tar.gz', 'url': 'http://apache.crihan.fr/dist/lucene/pylucene/pylucene-3.0.1-1-src.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"pylucene-3.0.1-1-src.tar.gz"))+"'},\n"
    45 EXTRA_TEXT += "    'PYLUCENE' : { 'setup': 'http://apache.crihan.fr/dist/lucene/pylucene/pylucene-3.0.1-1-src.tar.gz', 'url': 'http://apache.crihan.fr/dist/lucene/pylucene/pylucene-3.0.1-1-src.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"pylucene-3.0.1-1-src.tar.gz"))+"'},\n"
    47 EXTRA_TEXT += "    'PIL' : { 'setup': 'pil', 'url': 'http://effbot.org/downloads/Imaging-1.1.7.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"Imaging-1.1.7.tar.gz"))+"'},\n"
    46 EXTRA_TEXT += "    'PIL' : { 'setup': 'pil', 'url': 'http://effbot.org/downloads/Imaging-1.1.7.tar.gz', 'local': '"+ os.path.abspath(os.path.join(src_base,"Imaging-1.1.7.tar.gz"))+"'},\n"
    48 EXTRA_TEXT += "    'PYXML' : { 'setup': 'http://sourceforge.net/projects/pyxml/files/pyxml/0.8.4/PyXML-0.8.4.tar.gz/download', 'url': 'http://sourceforge.net/projects/pyxml/files/pyxml/0.8.4/PyXML-0.8.4.tar.gz/download', 'local': '"+ os.path.abspath(os.path.join(src_base,"PyXML-0.8.4.tar.gz"))+"', 'patch': '"+os.path.join(patch_path,"pyxml.patch")+"'},\n"
       
    49 EXTRA_TEXT += "    'DJANGO' : { 'setup': 'django', 'url': 'http://www.djangoproject.com/download/1.2.3/tarball/', 'local': '"+ os.path.abspath(os.path.join(src_base,"Django-1.2.3.tar.gz"))+"'},\n"
    47 EXTRA_TEXT += "    'DJANGO' : { 'setup': 'django', 'url': 'http://www.djangoproject.com/download/1.2.3/tarball/', 'local': '"+ os.path.abspath(os.path.join(src_base,"Django-1.2.3.tar.gz"))+"'},\n"
    50 EXTRA_TEXT += "    'JOGGING' : { 'setup': 'jogging', 'url': 'http://github.com/zain/jogging/tarball/v0.2.2', 'local': '"+ os.path.abspath(os.path.join(src_base,"jogging-0.2.2.tar.gz"))+"'},\n"
    48 EXTRA_TEXT += "    'JOGGING' : { 'setup': 'jogging', 'url': 'http://github.com/zain/jogging/tarball/v0.2.2', 'local': '"+ os.path.abspath(os.path.join(src_base,"jogging-0.2.2.tar.gz"))+"'},\n"
    51 EXTRA_TEXT += "    'DJANGO-EXTENSIONS' : { 'setup': 'django-extensions', 'url':'http://django-command-extensions.googlecode.com/files/django-extensions-0.4.1.tar.gz', 'local':'"+ os.path.abspath(os.path.join(src_base,"django-extensions-0.4.1.tar.gz"))+"' },\n"
    49 EXTRA_TEXT += "    'DJANGO-EXTENSIONS' : { 'setup': 'django-extensions', 'url':'http://django-command-extensions.googlecode.com/files/django-extensions-0.4.1.tar.gz', 'local':'"+ os.path.abspath(os.path.join(src_base,"django-extensions-0.4.1.tar.gz"))+"' },\n"
    52 EXTRA_TEXT += "    'DJANGO-REGISTRATION' : { 'setup': 'django-registration', 'url':'http://bitbucket.org/ubernostrum/django-registration/get/tip.tar.gz', 'local':'"+ os.path.abspath(os.path.join(src_base,"django-registration.tar.gz"))+"' },\n"
    50 EXTRA_TEXT += "    'DJANGO-REGISTRATION' : { 'setup': 'django-registration', 'url':'http://bitbucket.org/ubernostrum/django-registration/get/tip.tar.gz', 'local':'"+ os.path.abspath(os.path.join(src_base,"django-registration.tar.gz"))+"' },\n"
    53 EXTRA_TEXT += "    'DJANGO-TAGGING' : { 'setup': 'django-tagging', 'url':'http://django-tagging.googlecode.com/files/django-tagging-0.3.1.tar.gz', 'local':'"+ os.path.abspath(os.path.join(src_base,"django-tagging-0.3.1.tar.gz"))+"' },\n"
    51 EXTRA_TEXT += "    'DJANGO-TAGGING' : { 'setup': 'django-tagging', 'url':'http://django-tagging.googlecode.com/files/django-tagging-0.3.1.tar.gz', 'local':'"+ os.path.abspath(os.path.join(src_base,"django-tagging-0.3.1.tar.gz"))+"' },\n"
   199                             filter_stdout=filter_python_develop,
   197                             filter_stdout=filter_python_develop,
   200                             show_stdout=True)
   198                             show_stdout=True)
   201 
   199 
   202         if system_str == 'Linux'  and 'DISTRIBUTE' not in ignore_packages:
   200         if system_str == 'Linux'  and 'DISTRIBUTE' not in ignore_packages:
   203             normal_install('DISTRIBUTE', 'pip', None, None, res_source_key, home_dir, tmp_dir)
   201             normal_install('DISTRIBUTE', 'pip', None, None, res_source_key, home_dir, tmp_dir)
   204 
       
   205         if 'PYXML' not in ignore_packages:
       
   206             logger.notify("PyXML install : %s " % URLS['PYXML'][res_source_key])
       
   207             if sys.version_info >= (2,6):
       
   208                 logger.notify("PyXML -> python version >= 2.6 : patching")
       
   209                 pyxml_src = os.path.join(src_dir,"pyxml.tar.gz")
       
   210                 urllib.urlretrieve(URLS['PYXML'][res_source_key], pyxml_src)
       
   211                 logger.notify("PyXML -> python version >= 2.6 : extract archive")
       
   212                 tf = tarfile.open(pyxml_src,'r:gz')
       
   213                 pyxml_base_path = os.path.join(src_dir,"pyxml") 
       
   214                 tf.extractall(pyxml_base_path)
       
   215                 tf.close()
       
   216     
       
   217                 #patch
       
   218                 pyxml_version = os.listdir(pyxml_base_path)[0]            
       
   219                 pyxml_path = os.path.join(pyxml_base_path, pyxml_version)
       
   220                 olddir = os.getcwd()
       
   221                 os.chdir(pyxml_path)
       
   222                 logger.notify("PyXML -> python version >= 2.6 : do patch %s : %s " % (pyxml_path, URLS['PYXML']['patch']))
       
   223                 p = patch.fromfile(URLS['PYXML']['patch'])
       
   224                 p.apply()
       
   225                 os.chdir(olddir)
       
   226                 logger.notify("PyXML -> python version >= 2.6 : install")
       
   227                 call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'pip')), 'install', '-E', os.path.abspath(home_dir), '--build='+os.path.abspath(pyxml_base_path), '--no-download', pyxml_version],
       
   228                         cwd=os.path.abspath(tmp_dir),
       
   229                         filter_stdout=filter_python_develop,
       
   230                         show_stdout=True)
       
   231             else:
       
   232                 call_subprocess([os.path.abspath(os.path.join(home_dir, 'bin', 'pip')), 'install', '-E', os.path.abspath(home_dir), URLS['PYXML'][res_source_key]],
       
   233                         cwd=os.path.abspath(tmp_dir),
       
   234                         filter_stdout=filter_python_develop,
       
   235                         show_stdout=True)
       
   236         
   202         
   237         
   203         
   238         NORMAL_INSTALL = [ #(key,method, option_str, extra_env)
   204         NORMAL_INSTALL = [ #(key,method, option_str, extra_env)
   239             #('LXML', 'easy_install', None, {'STATIC_DEPS': 'true'}),
   205 #            ('LXML', 'easy_install', None, {'STATIC_DEPS': 'true'}),
   240             ('PSYCOPG2', 'pip', None, None),
   206             ('PSYCOPG2', 'pip', None, None),
   241             ('MYSQL', 'pip', None, None),
   207             ('MYSQL', 'pip', None, None),
   242             ('PIL', 'pip', None, None), 
   208             ('PIL', 'pip', None, None), 
   243             ('FOURSUITE_XML','easy_install', None, None), 
       
   244             ('DJANGO','pip', None, None),
   209             ('DJANGO','pip', None, None),
   245             ('JOGGING','pip', None, None),
   210             ('JOGGING','pip', None, None),
   246             ('DJANGO-EXTENSIONS', 'pip', None, None),
   211             ('DJANGO-EXTENSIONS', 'pip', None, None),
   247             ('DJANGO-REGISTRATION', 'easy_install', '-Z', None),
   212             ('DJANGO-REGISTRATION', 'easy_install', '-Z', None),
   248             ('DJANGO-TAGGING', 'pip', None, None),
   213             ('DJANGO-TAGGING', 'pip', None, None),