Many thanks for py2app, of all the packaging apps I’ve tried, it’s been the most usable by far; that said, I have questions. Using conda, python 3.8.5, and py2app 0.22 on MacOS 10.15.7 with the following test app:
# hello.py print(“Hello, World!”) And the following default setup.py: from setuptools import setup APP = ["hello.py”] DATA_FILES = [] OPTIONS = {} setup( app=APP, data_files=DATA_FILES, options={"py2app": OPTIONS}, setup_requires=["py2app”], ) Everything builds and runs fine: $ python setup.py py2app $ dist/hello.app/Contents/MacOS/hello Hello, World! However, upon closer inspection, I see that there are a couple of libs that are being loaded from outside the bundle: $ DYLD_PRINT_LIBRARIES=1 dist/hello.app/Contents/MacOS/hello ... /Users/tshead/miniconda3/envs/flow/lib/libz.1.dylib /Users/tshead/miniconda3/envs/flow/lib/libffi.7.dylib Focusing on libz, I see that it’s being loaded from a library that is part of the bundle: $ otool -L dist/hello.app/Contents/Resources/lib/python3.8/lib-dynload/zlib.so dist/hello.app/Contents/Resources/lib/python3.8/lib-dynload/zlib.so: @rpath/libz.1.dylib (compatibility version 1.0.0, current version 1.2.11) … And when I look at the main executable, the second rpath looks questionable: $ otool -l dist/hello.app/Contents/MacOS/hello … Load command 16 cmd LC_RPATH cmdsize 32 path @loader_path/../lib (offset 12) Load command 17 cmd LC_RPATH cmdsize 48 path @loader_path/../../../../../ (offset 12) What is the right approach to address this? Manually copy the missing .dylib files into dist/hello.app/Contents/lib? I’m too new to know what to expect from py2app, but I’m surprised that it would be necessary for something as ubiquitous as zlib? Cheers, Tim _______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org https://mail.python.org/mailman/listinfo/pythonmac-sig unsubscribe: https://mail.python.org/mailman/options/Pythonmac-SIG