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/
