[feat] Enable isolation from preexisting packages
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
Showing
Please register or sign in to comment