• Xavier Thompson's avatar
    [feat] Enable isolation from preexisting packages · a3ff0510
    Xavier Thompson authored
    Add option `isolate-from-buildout-and-setuptools-path` to prevent
    buildout from scanning the directories where zc.buildout's or its
    dependencies's currently running packages are located.
    
    In apparently intended design, `buildout bootstrap` should already
    provide isolation by either installing pinned versions of zc.buildout
    and dependencies in local ./eggs directory, or copying them from the
    currently running egg into ./eggs if the running versions match.
    
    However, when the currently running versions are not eggs - which is
    the case when they are installed by pip in site-packages, e.g. as is
    the case in a virtual environment - then buildout merely creates
    `.egg-link` references to the locations of the running packages, which
    is often site-packages.
    
    The presence of .egg-link referencing site-packages can cause packages
    available in site-packages to interfere when considering which eggs to
    install and what path items to insert in sys.path when creating
    scripts.
    
    This is in some way a workaround for the fact that buildout only knows
    how to handle eggs and not .dist-info packages such as produced by pip.
    
    With `isolate-from-buildout-and-setuptools-path`, buildout bootstrap
    will allways install a fresh version of zc.buildout & co in ./eggs
    a3ff0510
__init__.py 10.4 KB