Because `lib.zip` is the target filename as used in `main/appengine_config.py` (when on GAE), so IMO it is more clear to construct with a join: that is the filename, and it is to be found in DIR_MAIN. This was how it has been in the past; and how most other FILE_ things are constructed in `run.py` (look at FILE_PIP_RUN, FILE_COFFEE, etc)