> On 10 Nov 2021, at 20:28, Paul Romer <p...@paulromer.net> wrote: > > I am new to this sig. I hope it is appropriate to pose the following detailed > question to its members. Let me know if I have misunderstood. > > I'll provide a bit of background, specify the steps I took, then describe the > two issues I'm facing on which I would welcome advice. > > ===================================================================== > > Background: > I am trying to create a self-contained Python application that a user could > download and run on MacOS that does not have Python 3 installed. I am aware > that PyInstaller and py2app are alternative paths for creating self-contained > apps and am pursuing them in parallel. > > The issue I want to describe here arose as part of experiments with the > process for creating a binary for a recent version of Python (3.9.8) that can > be installed under the user's home directory. > > /Users/{USER}/Library. > > According to the information in the cpython repository, it seems that it > should be possible to build an installer for a full version of Python that > can be installed someplace on a Mac other than the default location: > /Library. In particular, one should be able to do this using > > build-installer.py > > in the > > Mac/BuildScript > > directory. > > ===================================================================== > > Steps I Took: > > In the cpython directory I ran: > > > ./configure --enable-framework=/Users/{USER}/Library/Frameworks \ > --enable-optimizations
Why do you think you need to build CPYTHON at all? I use py3app with the python.org <http://python.org/> downloaded versions of python. > > I confirmed that the Makefile included the line: > > CONFIG_ARGS= '--enable-framework=/Users/{USER}/Library/Frameworks' > '--enable-optimizations' > > (I also tried replacing {USER} with the actual user on my system, 'admin'. > This yielded the same results.) > > I put the external files OpenSSL, tcl/tck, ... (details below) that are > required into the > > .../Universal/other-sources > > directory. I deleted my install of Python3.9 and backed-up and deleted all > the files from > > /usr/local/bin > > Then from > > /Mac/BuildScript > > I ran > > > python3 build-installer.py \ > --universal-archs=intel-64 \ > --dep-target=11 > > Along the way, there were several warnings, but no errors. The end result is > a dmg file: > > python-3.9.8+-macos12-2021-11-10.dmg > > ===================================================================== > > Issues: > > 1. I am not sure how to convert the dmg into a "macOS flat installer package" > and would welcome any advice on this point. You do not need to. All the user needs to do it drag the <yourapp>.app folder into (typically) /Applications. > > 2. But in any case, I do not think that an installer based on this dmg will > allow an install in the Library of the user. When I inspect the dmg file, I > find that the post-install scripts include references to the usual file > location in /Library. For example, the script that runs after installing the > framework has the lines: > > PYVER="3.9" > FWK="/Library/Frameworks/Python.framework/Versions/3.9" What post-install script? That's not something that py2app does. > > The script that runs after installing the files for pip has the lines: > > PYVER="3.9" > PYMAJOR="3" > FWK="/Library/Frameworks/Python.framework/Versions/${PYVER}" > RELFWKBIN="../../..${FWK}/bin" > > This suggests that I have misunderstood the instructions. So I would > appreciate any advice on how to succeed on this path, or suggestions about > alternative paths that might work. In particular, the alternative that might > be feasible would be to use the work from > > https://github.com/codrsquad/portable-python > <https://github.com/codrsquad/portable-python> > > This is a recent project, not the one with the same name that was abandoned > that you'll find here: > > https://portablepython.com/ <https://portablepython.com/> For Barry's Emacs I do 2 steps. 1. Build the .app bundle. 2. Build .dmg that has a bunch of files including the .app bundle. There may be a bit too much complexity but have look at how I build the .app bundle in https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/build-macosx.sh <https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/macosx.mak> and https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/brand.setup-macosx.py <https://github.com/barry-scott/BarrysEmacs/blob/master/Editor/PyQtBEmacs/brand.setup-macosx.py> I'm using PyQt not Tk. Barry > > > Thanks for reading through all this! > > > ===================================================================== > > PS: Contents of my .../Universal/other-sources directory: > > -rw-r--r-- 1 admin staff 367573 Nov 10 00:53 > ncurses-5.9-20120616-patch.sh.bz2 > -rw-r--r-- 1 admin staff 2826473 Nov 10 00:53 ncurses-5.9.tar.gz > -rw-r--r-- 1 admin staff 9834044 Nov 9 22:19 openssl-1.1.1l.tar.gz > -rw-rw-rw-@ 1 admin staff 2956627 Nov 10 01:06 > sqlite-autoconf-3350500.tar.gz > -rw-rw-rw-@ 1 admin staff 10259009 Nov 9 22:55 tcl8.6.11-src.tar.gz > -rw-rw-rw-@ 1 admin staff 4496914 Nov 10 00:37 tk8.6.11-src.tar.gz > -rw-rw-rw-@ 1 admin staff 1490665 Nov 10 00:45 xz-5.2.3.tar.gz > > ===================================================================== > > > Paul Romer > p...@paulromer.net <mailto:p...@paulromer.net> | paulromer.net > <http://paulromer.net/> | @paulromer > <https://twitter.com/paulmromer?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Eauthor> > > _______________________________________________ > Pythonmac-SIG maillist - Pythonmac-SIG@python.org > https://mail.python.org/mailman/listinfo/pythonmac-sig > unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG
_______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org https://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG