def compose_index(): """create a simple pypi style index for for this virtualenv""" try: import compoze except ImportError: sh(sjoin(sys.executable, pip_path, 'install -i http://dist.repoze.org/simple compoze')) dlpath = os.path.join(sys.prefix, 'downloads') sh(sjoin('%s/bin/compoze' %sys.prefix, 'fetch --path ', dlpath, ' --fetch-site-packages', 'index --path', dlpath ))
def bootstrap_steamroller(): global steamroller, pip_path, rolluts, rollbo try: import steamroller except ImportError: sh(sjoin(sys.executable, pip_path, 'install -r roller.txt')) import steamroller #@@?? import steamroller.utils as rolluts import steamroller.bo as rollbo
def install_pip(): """Installs pip, easy_installs better behaved younger brother""" root = sys.prefix global pip try: import pip except ImportError: sh(easy_install_path+' pip') site_packages_dir = os.path.dirname(os.__file__) +'/site-packages/' for path in os.listdir(site_packages_dir): if path.startswith('pip'): sys.path.append(site_packages_dir+path) working_set.add_entry(site_packages_dir+path) return import pip
def install_recipes(): """Installs zc.buildout and buildout recipes for use by other tasks""" root = sys.prefix try: import zc.buildout import zc.recipe.egg import hexagonit.recipe.cmmi except ImportError: sh(sjoin(sys.executable, pip_path, 'install -r recipes.txt --ignore-installed')) rolluts.add_to_sys_path('hexagonit') rolluts.add_to_sys_path('hexagonit.recipe.cmmi') rolluts.add_to_sys_path('zc') rolluts.add_to_sys_path('zc.buildout') rolluts.add_to_sys_path('zc.recipe.egg') import hexagonit.recipe.cmmi import zc.buildout import zc.recipe.egg
def custom_egg_brute_install(section, bocfg, mod_buildout=None): """ Hack to install packages that may have extensions issues when installing. Reads a zc.recipe.egg:custom buildout section to figure out what to do. Example buildout config:: [install_it] recipe = zc.recipe.egg:custom egg = SomePkg include-dirs = ${c_dependency:location}/include library-dirs = ${c_dependency:location}/lib rpath = ${c_dependency:location}/lib libraries = c_dependency """ section_dict = bocfg.section_dict(section) pkgname = section_dict['egg'] fake_buildout = create_fake_buildout() if callable(mod_buildout): fake_buildout = mod_buildout(fake_buildout) #@@ buildout must have some sort of req parser??? rec_klass = pkg_resources.load_entry_point("zc.recipe.egg", 'zc.buildout', 'custom') POpts = make_POpts() opts = POpts(fake_buildout, section, section_dict) recipe = rec_klass(fake_buildout, section, opts) sh(get_pip_path() + " install --no-install %s" %pkgname) pkg_src = os.path.join(sys.prefix, 'build', pkgname) setup_cfg = os.path.join(pkg_src, 'setup.cfg') import setuptools.command.setopt setuptools.command.setopt.edit_config(setup_cfg, dict(build_ext=recipe.build_ext)) sh('cd %s; %s setup.py install' %(pkg_src, sys.executable))