簡體   English   中英

通過 Pyinstaller 創建的 Python 應用程序無法運行

[英]Python app created via Pyinstaller does not run

我制作了一個簡單的單文件腳本,希望與最終用戶共享。 我發現 Pyinstaller 完成了這項工作,所以我重構了我的項目結構。

我有一個項目目錄。 在里面,我有一個 package,它有一個空的__init__.py和一個__main__.py實際腳本,其中包含一些庫,如 opencv-python、numpy 等。在項目之外,我有一個 setup.py 和從__main__.py導入主 function 並調用它的入口點腳本。

然后我在 --onefile 模式下使用 PyInstaller 針對這個入口點創建了可執行文件。 當我在我的機器上使用創建的可執行文件時,它可以完美地完成工作,但是當我將它發送給最終用戶時,它最終會出現錯誤(見下文)。 我不太確定這個錯誤是什么意思,但我看到了通往我的開發環境的路徑,這些路徑在其他機器上不應該存在。 看起來它缺少依賴項,但我認為 PyInstaller 將這些依賴項捆綁到可執行文件中。

我在這里想念什么? 我在 StackOverflow 中閱讀了很多關於這里的問題,但我找不到解決方案。

我在 PyCharm 創建的 venv 中使用 PyCharm 在最新的 macOS 上開發了這個腳本。 venv 文件夾位於項目目錄中 - 我不知道這可能是一個問題。

Traceback (most recent call last):
  File "PyInstaller/loader/rthooks/pyi_rth_pkgres.py", line 11, in <module>
  File "/Users/hordon/Documents/DEV/projects/scan_detect/venv/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
  File "setuptools-40.8.0-py3.7.egg/pkg_resources/__init__.py", line 33, in <module>
  File "/Users/hordon/Documents/DEV/projects/scan_detect/venv/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
  File "platform.py", line 116, in <module>
  File "/Users/hordon/Documents/DEV/projects/scan_detect/venv/lib/python3.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 627, in exec_module
  File "subprocess.py", line 153, in <module>
ImportError: dlopen(/var/folders/wk/cwx1b16j50z5_yt1ynq82hr00000gn/T/_MEI7eUUkV/select.cpython-37m-darwin.so, 2): Symbol not found: ____chkstk_darwin
  Referenced from: /var/folders/wk/cwx1b16j50z5_yt1ynq82hr00000gn/T/_MEI7eUUkV/select.cpython-37m-darwin.so (which was built for Mac OS X 10.15)
  Expected in: /usr/lib/libSystem.B.dylib
 in /var/folders/wk/cwx1b16j50z5_yt1ynq82hr00000gn/T/_MEI7eUUkV/select.cpython-37m-darwin.so
[15314] Failed to execute script pyi_rth_pkgres

我也有同樣的問題,可惜是mac os的問題。 所以,如果你想支持不同版本的 mac os,你需要在最舊版本的 mac os 上構建你的應用程序。

“在 Mac OS X 中,一個 OS 版本的組件通常與更高版本兼容,但它們可能不適用於早期版本。

確定您的應用程序支持舊版 Mac OS X 的唯一方法是在您需要支持的舊版操作系統中運行 PyInstaller。”

https://pyinstaller.readthedocs.io/en/stable/usage.html#making-mac-os-x-apps-forward-compatible

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM