Changeset 13667
- Timestamp:
- 9 Feb 2016, 12:40:02 (9 years ago)
- Location:
- main/waeup.plonetheme/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.plonetheme/trunk/bootstrap.py
r10867 r13667 19 19 """ 20 20 21 import os, shutil, sys, tempfile 21 import os 22 import shutil 23 import sys 24 import tempfile 25 22 26 from optparse import OptionParser 23 27 24 tmpeggs = tempfile.mkdtemp() 28 __version__ = '2015-07-01' 29 # See zc.buildout's changelog if this version is up to date. 30 31 tmpeggs = tempfile.mkdtemp(prefix='bootstrap-') 25 32 26 33 usage = '''\ … … 32 39 Python that you want bin/buildout to use. 33 40 34 Note that by using -- setup-source and --download-base to point to35 local resources, you can keepthis script from going over the network.41 Note that by using --find-links to point to local resources, you can keep 42 this script from going over the network. 36 43 ''' 37 44 38 45 parser = OptionParser(usage=usage) 39 parser.add_option("-v", "--version", help="use a specific zc.buildout version") 40 46 parser.add_option("--version", 47 action="store_true", default=False, 48 help=("Return bootstrap.py version.")) 41 49 parser.add_option("-t", "--accept-buildout-test-releases", 42 50 dest='accept_buildout_test_releases', … … 49 57 "even if they are alphas or betas.")) 50 58 parser.add_option("-c", "--config-file", 51 52 59 help=("Specify the path to the buildout configuration " 60 "file to be used.")) 53 61 parser.add_option("-f", "--find-links", 54 help=("Specify a URL to search for buildout releases")) 55 62 help=("Specify a URL to search for buildout releases")) 63 parser.add_option("--allow-site-packages", 64 action="store_true", default=False, 65 help=("Let bootstrap.py use existing site packages")) 66 parser.add_option("--buildout-version", 67 help="Use a specific zc.buildout version") 68 parser.add_option("--setuptools-version", 69 help="Use a specific setuptools version") 70 parser.add_option("--setuptools-to-dir", 71 help=("Allow for re-use of existing directory of " 72 "setuptools versions")) 56 73 57 74 options, args = parser.parse_args() 75 if options.version: 76 print("bootstrap.py version %s" % __version__) 77 sys.exit(0) 78 58 79 59 80 ###################################################################### 60 # load/install distribute 61 62 to_reload = False 81 # load/install setuptools 82 63 83 try: 64 import pkg_resources, setuptools 65 if not hasattr(pkg_resources, '_distribute'): 66 to_reload = True 67 raise ImportError 84 from urllib.request import urlopen 68 85 except ImportError: 69 ez = {} 70 71 try: 72 from urllib.request import urlopen 73 except ImportError: 74 from urllib2 import urlopen 75 76 exec(urlopen('http://python-distribute.org/distribute_setup.py').read(), ez) 77 setup_args = dict(to_dir=tmpeggs, download_delay=0, no_fake=True) 78 ez['use_setuptools'](**setup_args) 79 80 if to_reload: 81 reload(pkg_resources) 82 import pkg_resources 83 # This does not (always?) update the default working set. We will 84 # do it. 85 for path in sys.path: 86 if path not in pkg_resources.working_set.entries: 87 pkg_resources.working_set.add_entry(path) 86 from urllib2 import urlopen 87 88 ez = {} 89 if os.path.exists('ez_setup.py'): 90 exec(open('ez_setup.py').read(), ez) 91 else: 92 exec(urlopen('https://bootstrap.pypa.io/ez_setup.py').read(), ez) 93 94 if not options.allow_site_packages: 95 # ez_setup imports site, which adds site packages 96 # this will remove them from the path to ensure that incompatible versions 97 # of setuptools are not in the path 98 import site 99 # inside a virtualenv, there is no 'getsitepackages'. 100 # We can't remove these reliably 101 if hasattr(site, 'getsitepackages'): 102 for sitepackage_path in site.getsitepackages(): 103 # Strip all site-packages directories from sys.path that 104 # are not sys.prefix; this is because on Windows 105 # sys.prefix is a site-package directory. 106 if sitepackage_path != sys.prefix: 107 sys.path[:] = [x for x in sys.path 108 if sitepackage_path not in x] 109 110 setup_args = dict(to_dir=tmpeggs, download_delay=0) 111 112 if options.setuptools_version is not None: 113 setup_args['version'] = options.setuptools_version 114 if options.setuptools_to_dir is not None: 115 setup_args['to_dir'] = options.setuptools_to_dir 116 117 ez['use_setuptools'](**setup_args) 118 import setuptools 119 import pkg_resources 120 121 # This does not (always?) update the default working set. We will 122 # do it. 123 for path in sys.path: 124 if path not in pkg_resources.working_set.entries: 125 pkg_resources.working_set.add_entry(path) 88 126 89 127 ###################################################################### 90 128 # Install buildout 91 129 92 ws = pkg_resources.working_set 93 130 ws = pkg_resources.working_set 131 132 setuptools_path = ws.find( 133 pkg_resources.Requirement.parse('setuptools')).location 134 135 # Fix sys.path here as easy_install.pth added before PYTHONPATH 94 136 cmd = [sys.executable, '-c', 137 'import sys; sys.path[0:0] = [%r]; ' % setuptools_path + 95 138 'from setuptools.command.easy_install import main; main()', 96 139 '-mZqNxd', tmpeggs] … … 105 148 cmd.extend(['-f', find_links]) 106 149 107 distribute_path = ws.find(108 pkg_resources.Requirement.parse('distribute')).location109 110 150 requirement = 'zc.buildout' 111 version = options. version151 version = options.buildout_version 112 152 if version is None and not options.accept_buildout_test_releases: 113 153 # Figure out the most recent final version of zc.buildout. 114 154 import setuptools.package_index 115 155 _final_parts = '*final-', '*final' 156 116 157 def _final_version(parsed_version): 117 for part in parsed_version: 118 if (part[:1] == '*') and (part not in _final_parts): 119 return False 120 return True 158 try: 159 return not parsed_version.is_prerelease 160 except AttributeError: 161 # Older setuptools 162 for part in parsed_version: 163 if (part[:1] == '*') and (part not in _final_parts): 164 return False 165 return True 166 121 167 index = setuptools.package_index.PackageIndex( 122 search_path=[ distribute_path])168 search_path=[setuptools_path]) 123 169 if find_links: 124 170 index.add_find_links((find_links,)) … … 143 189 144 190 import subprocess 145 if subprocess.call(cmd , env=dict(os.environ, PYTHONPATH=distribute_path)) != 0:191 if subprocess.call(cmd) != 0: 146 192 raise Exception( 147 "Failed to execute command:\n%s", 148 repr(cmd)[1:-1]) 193 "Failed to execute command:\n%s" % repr(cmd)[1:-1]) 149 194 150 195 ###################################################################### … … 164 209 zc.buildout.buildout.main(args) 165 210 shutil.rmtree(tmpeggs) 211 -
main/waeup.plonetheme/trunk/buildout.cfg
r10868 r13667 16 16 http://effbot.org/downloads 17 17 unzip = true 18 extensions = buildout.dumppickedversions 18 show-picked-versions = true 19 19 http-address = 0.0.0.0:5000 20 20 eggs =
Note: See TracChangeset for help on using the changeset viewer.