[英]Creating universal build for mac os with pyinstaller and python3
我有兩台mac機器。 一個基於英特爾並運行 big sur,第二個是 M1 並運行 big sur。 我正在嘗試使用 pyinstaller 和 universal2 選項構建示例 hello world package。 package 在英特爾機器上工作正常但是當我在 M1 機器上復制 package 時它拋出以下錯誤
marwa@admins-Mac-mini test_app % ls
build dist test.py test.spec
marwa@admins-Mac-mini test_app % cd dist
marwa@admins-Mac-mini dist % ls
test test.app
marwa@admins-Mac-mini dist % cd test
marwa@admins-Mac-mini test % ls
Python libbz2.1.0.dylib libexpat.1.dylib libintl.8.dylib libssl.3.dylib
base_library.zip libcrypto.3.dylib libffi.8.dylib liblzma.5.dylib libz.1.dylib
lib-dynload libedit.0.dylib libiconv.2.dylib libncurses.6.dylib test
marwa@admins-Mac-mini test % ./test
[29040] Module object for struct is NULL!
Traceback (most recent call last):
File "struct.py", line 13, in <module>
ImportError: dynamic module does not define module export function (PyInit__struct)
[29040] Module object for pyimod02_archive is NULL!
Traceback (most recent call last):
File "PyInstaller/loader/pyimod02_archive.py", line 27, in <module>
ModuleNotFoundError: No module named 'struct'
[29040] Module object for pyimod03_importers is NULL!
Traceback (most recent call last):
File "PyInstaller/loader/pyimod03_importers.py", line 23, in <module>
ModuleNotFoundError: No module named 'pyimod02_archive'
Traceback (most recent call last):
File "PyInstaller/loader/pyiboot01_bootstrap.py", line 17, in <module>
ModuleNotFoundError: No module named 'pyimod03_importers'
[29040] Failed to execute script 'pyiboot01_bootstrap' due to unhandled exception: No module named 'pyimod03_importers'
[29040] Traceback:
使用以下命令編譯我的代碼
cloudqa@MACBOOKAIR01 test_app % /opt/local/bin/python3.9 /opt/local/Library/Frameworks/Python.framework/Versions/3.9/bin/pyinstaller --target-architecture universal2 test.py
還
cloudqa@MACBOOKAIR01 test_app % lipo -archs /opt/local/bin/python3.9
x86_64 arm64
cloudqa@MACBOOKAIR01 test_app %
如果我輸入 go 並檢查 dist 文件夾中二進制文件的架構,我可以在下面看到
cloudqa@MACBOOKAIR01 test % ls
Python libbz2.1.0.dylib libexpat.1.dylib libintl.8.dylib libssl.3.dylib
base_library.zip libcrypto.3.dylib libffi.8.dylib liblzma.5.dylib libz.1.dylib
lib-dynload libedit.0.dylib libiconv.2.dylib libncurses.6.dylib test
cloudqa@MACBOOKAIR01 test % lipo -archs test
x86_64 arm64
cloudqa@MACBOOKAIR01 test %
似乎早期可能存在導入/路徑問題,從那里級聯以下錯誤。 不看 struct.py 中的代碼就很難分辨。 只是通過 ImportError 缺少或未正確設置的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.