classification
Title: Allow zipapp to target modules
Type: enhancement Stage:
Components: Extension Modules Versions: Python 3.6
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: flying sheep, paul.moore
Priority: normal Keywords:

Created on 2016-02-03 12:25 by flying sheep, last changed 2016-02-03 17:36 by brett.cannon.

Messages (1)
msg259476 - (view) Author: (flying sheep) * Date: 2016-02-03 12:25
currently, zipapp’s notion of __main__.py is very different from the usual.

the root directory of a zipapp is not a module, therefore __init__.py isn’t used and relative imports from __main__.py don’t work.

i propose that the zipapp functionality is amended/changed to

1. allow more than one target directory (bundle multiple modules)
2. allow creation of a __main__.py that contains a runpy-powered module runner

so maybe we could specify the module itself as entry point to get this behavior

zipapp -m my_module dependency.py my_module

should create

my_module.pyz
├ __main__.py  →  ...runpy.run_module('my_module')
├ dependency.py
└ my_module
  ├ __init__.py
  └ __main__.py  →  from . import ...

or there would be another option to specify it.
History
Date User Action Args
2016-02-03 17:36:37brett.cannonsetnosy: + paul.moore
2016-02-03 12:25:04flying sheepcreate