Previously the bin directory would only be added to PATH if it existed (due to it being set by lifecycle), which is only the case if one of the installed dependencies has an entry point script, which causes pip to create the bin directory and place a wrapper script inside it for that package's CLI command.
This meant:
We had to suppress pip's warning during install (since pip isn't to know that the PATH will be correctly set later)
If an app has no dependencies with an entry-point (so the app image doesn't have a bin directory), then at run-time tries to pip install a new package that does have an entry point (eg when debugging), then that new script won't be on PATH.
As such, we now add the bin directory to PATH explicitly, instead of relying on lifecycle automatic addition.
Previously the
bin
directory would only be added toPATH
if it existed (due to it being set bylifecycle
), which is only the case if one of the installed dependencies has an entry point script, which causes pip to create thebin
directory and place a wrapper script inside it for that package's CLI command.This meant:
PATH
will be correctly set later)bin
directory), then at run-time tries to pip install a new package that does have an entry point (eg when debugging), then that new script won't be onPATH
.As such, we now add the
bin
directory to PATH explicitly, instead of relying onlifecycle
automatic addition.GUS-W-16359285.