On Fri, Nov 20, 2020 at 7:20 PM Greg Ewing <[email protected]>
wrote:

> On 21/11/20 3:03 am, Paul Moore wrote:
> > For my own purposes, what I *actually* want is to specify a list of
> > 3rd party packages ...
> > I *don't* want clever logic to decide how to strip out "unused" bits.
>
> I concur.
>
> With venvs, it seems like it should be possible to have a very
> simple tool that just packages up everything in your venv. Such
> a tool ought to be quite small and shouldn't require anything like
> the amount of maintenance that PyInstaller and its ilk seem to
> need.
>
> Am I wrong about this?
>

This is the approach we take for OSX where pyinstaller didn't seem to work
as well (as opposed to windows where you can dump all the dlls in a
directory and add it to the path, it doesn't work as well with dylibs) so
we rolled our own [1]. But it still is not as simple.

E.g. the overall steps are:

- Make a skeleton app with platypus [2], this will allow it to run like a
native osx app.
- Download and install all the dependency frameworks, including python dmg
to the app.
- Relocate all dylibs such that the paths are relative to the app rather
than using builtin hardcoded paths. This easily requires a fair bit of
troubleshooting.
- Make venv with virtualenv and make it relocatable. Virtualenv does not
support a relocatable venv anymore [3] so this has to be hacked a little
and hope for the best.
- Install pip packages.
- Make pip scripts relocatable with sed (they normally contain hardcoded
paths) and hopefully don't break these scripts.
- Strip whatever you don't need.
- Make into dmg.

Matt

[1] https://github.com/kivy/kivy-sdk-packager/tree/master/osx
[2] https://sveinbjorn.org/platypus
[3] https://github.com/pypa/virtualenv/issues/1549
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/[email protected]/message/CW3DCX44UIT4RDCS6675FDU7VZ5673XF/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to