Я упаковал это простое приложение-флягу с помощью PyInstaller, но мой исполняемый файл OSX не запускается и показывает следующий исполняемый файл,
Error loading Python lib '/Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/Python': dlopen(/Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/Python, 10): image not found
Я предполагаю, что PyInstaller не упаковывает Python с моим приложением. Вот что я побежал,
$ pyinstaller hello_flask.spec --onedir
83 INFO: PyInstaller: 3.2
83 INFO: Python: 3.4.3
87 INFO: Platform: Darwin-13.4.0-x86_64-i386-64bit
89 INFO: UPX is not available.
90 INFO: Extending PYTHONPATH with paths
['/Users/ahmed/Code/play/py-install-tut',
'/Users/ahmed/Code/play/py-install-tut']
90 INFO: checking Analysis
99 INFO: checking PYZ
104 INFO: checking PKG
105 INFO: Building because toc changed
105 INFO: Building PKG (CArchive) out00-PKG.pkg
144 INFO: Bootloader /opt/boxen/pyenv/versions/3.4.3/Python.framework/Versions/3.4/lib/python3.4/site-packages/PyInstaller/bootloader/Darwin-64bit/run_d
144 INFO: checking EXE
145 INFO: Building because toc changed
145 INFO: Building EXE from out00-EXE.toc
145 INFO: Appending archive to EXE /Users/ahmed/Code/play/py-install-tut/build/hello_flask/hello_flask
155 INFO: Fixing EXE for code signing /Users/ahmed/Code/play/py-install-tut/build/hello_flask/hello_flask
164 INFO: checking COLLECT
WARNING: The output directory "/Users/ahmed/Code/play/py-install-tut/dist/hello_flask" and ALL ITS CONTENTS will be REMOVED! Continue? (y/n)y
1591 INFO: Removing dir /Users/ahmed/Code/play/py-install-tut/dist/hello_flask
1597 INFO: Building COLLECT out00-COLLECT.toc
2203 INFO: checking BUNDLE
WARNING: The output directory "/Users/ahmed/Code/play/py-install-tut/dist/myscript.app" and ALL ITS CONTENTS will be REMOVED! Continue? (y/n)y
3947 INFO: Removing dir /Users/ahmed/Code/play/py-install-tut/dist/myscript.app
3948 INFO: Building BUNDLE out00-BUNDLE.toc
3972 INFO: moving BUNDLE data files to Resource directory
Когда я открываю содержимое упакованного приложения в OSX, я получаю следующие файлы:
myscript.app/Contents/MacOS/
_struct.cpython-34m.so
hello_flask
zlib.cpython-34m.so
Когда я дважды щелкаю указанный выше исполняемый файл hello_flask
, я получаю следующий вывод в моем терминале:
/Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/hello_flask ; exit;
PyInstaller Bootloader 3.x
LOADER: executable is /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/hello_flask
LOADER: homepath is /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS
LOADER: _MEIPASS2 is NULL
LOADER: archivename is /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/hello_flask
LOADER: Extracting binaries
LOADER: Executing self as child
LOADER: set _MEIPASS2 to /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS
PyInstaller Bootloader 3.x
LOADER: executable is /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/hello_flask
LOADER: homepath is /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS
LOADER: _MEIPASS2 is /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS
LOADER: archivename is /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/hello_flask
LOADER: Already in the child - running user's code.
LOADER: Python library: /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/Python
Error loading Python lib '/Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/Python': dlopen(/Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/Python, 10): image not found
LOADER: Back to parent (RC: 255)
LOADER: Doing cleanup
LOADER: Freeing archive status for /Users/ahmed/Code/play/py-install-tut/dist/myscript.app/Contents/MacOS/hello_flask
[Process completed]
Я также пробовал запускать это на Mac OSX коллег, и у меня такая же проблема.