Hey all!
I using PyInstaller to create a mac binary (.app file) and while it works
well on macOS Catalina and Mojave, the app crashes on launch on High Sierra
and below.
I'm using Catalina to build the app and here's the crash log:
*ImportError:
dlopen(/Applications/AfterShoot.app/Contents/MacOS/rawpy/_rawpy.cpython-37m-darwin.so,
2): Symbol not found: ____chkstk_darwin
Referenced from:
/Applications/AfterShoot.app/Contents/MacOS/rawpy/../liblcms.1.0.19.dylib
(which was built for Mac OS X 10.15)
Expected in: /usr/lib/libSystem.B.dylib
in /Applications/AfterShoot.app/Contents/MacOS/rawpy/../liblcms.1.0.19.dylib
File "aftershoot.py", line 14, in <module>
File "loader/pyimod03_importers.py", line 623, in exec_module
File "gui/inference_utils/inference_worker_thread.py", line 23, in <module>
File "loader/pyimod03_importers.py", line 623, in exec_module
File "src/raw_to_jpeg/raw_to_jpeg.py", line 4, in <module>
File "loader/pyimod03_importers.py", line 623, in exec_module
File "rawpy/__init__.py", line 5, in <module>*
I was wondering if this is normal and if it's compulsory for me to build
multiple variants (each containing a different version of liblcms) for
different macOS versions?
Here's my spec file just in case:
*# -*- mode: python ; coding: utf-8 -*-
block_cipher = None
import os
import site
site_packages_dir = site.getsitepackages()[0]
venv = ['/Users/harshitdwivedi/Desktop/new_tf_env/lib/python3.7/site-packages',
'/Users/aayusharora/virtuals/env/lib/python3.7/site-packages/']
a = Analysis(['../aftershoot.py'],
pathex=venv,
binaries=None,
datas=[('../src/data', './src/data'), ('../gui/assets',
'gui/assets')],
hiddenimports=['astor'],
hookspath=[],
runtime_hooks=[],
excludes=['matplotlib', 'imageio', 'tensorboard',
'tensorflow-estimator', 'keras-preprocessing'],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
# remove extra binaries
a.binaries = a.binaries - TOC([
('QtQuick', None, None),
('QtVirtualKeyboard', None, None),
('libtcl8.6.dylib', None, None),
('libtk8.6.dylib', None, None),
('_codecs_jp.cpython-37m-darwin.so', None, None),
])
# remove extra binary folders
a.binaries = [x for x in a.binaries if not
os.path.dirname(x[1]).startswith("{}/skimage/draw".format(site_packages_dir))]
a.binaries = [x for x in a.binaries if not
os.path.dirname(x[1]).startswith("{}/skimage/feature".format(site_packages_dir))]
a.binaries = [x for x in a.binaries if not
os.path.dirname(x[1]).startswith("{}/skimage/filters".format(site_packages_dir))]
# remove the skimage path from resources
a.datas = [x for x in a.datas if not
os.path.dirname(x[1]).startswith("{}/skimage".format(site_packages_dir))]
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='aftershoot',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=False,
console=False )
coll = COLLECT(exe,
a.binaries,
a.zipfiles,
a.datas,
debug=False,
strip=False,
upx=False,
upx_exclude=[],
name='AfterShoot',
icon='gui/assets/icon.icns',
console=False)
app = BUNDLE(coll,
name='AfterShoot.app',
icon='../gui/assets/icon.icns',
bundle_identifier=None,
info_plist={
'NSHighResolutionCapable': True,
'NSRequiresAquaSystemAppearance': False,
'CFBundleName': 'AfterShoot',
'CFBundleIdentifier':'co.aftershoot.aftershoot'
},)
import subprocess
subprocess.call("python buildscripts/add_binaries.py", shell=True)*
*Thanks!*
--
You received this message because you are subscribed to the Google Groups
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pyinstaller/0edad5d5-516e-4837-a93e-a91e04d4139c%40googlegroups.com.