[fix] Add each .egg and .dist-info to environment
Since zc.buildout uses `pip` to install dists, most .egg in ./eggs and ./develop-eggs (in case of dists installed with zc.recipe.egg:custom) are not actually eggs, but installed wheels with .dist-info format which have been bundled into a .egg containing .dist-info metadata folder as well as the actual package folder directly alongside. Unlike actual eggs, such */*.dist-info bundles are not stepped into by package_resources when the containing directory is add to the environment, so each .egg bundle needs to be added individually. Buildout already does this for bundles in the target directory of egg installation, usually ./eggs, but e.g. in offline mode there is no target directory and then already installed .egg bundles are not detected. So now every dist path is added to the environment individual, including for paths where buildout looks for already installed eggs but will not install eggs to, such as ./develop-eggs, and also ./eggs in offline mode or when using zc.recipe.egg:custom and the target is ./develop-eggs and ./eggs is such a scan-from but don't-install-to path.
Showing
Please register or sign in to comment