簡體   English   中英

如何正確創建 pyinstaller 鈎子,或者隱藏導入?

[英]How to properly create a pyinstaller hook, or maybe hidden import?

我有兩個包(比如datareaddatainspector ),它們以某種方式沒有被 PyInstaller 檢測到。 因此,當正在運行的應用程序到達需要從這些包中導入模塊時,應用程序就會終止。

最簡單的解決方案是將datareaddatainspector復制到打包的應用程序中。 但這會破壞打包應用程序二進制版本的意圖。

我讀過關於隱藏導入和鈎子的文章,我認為兩者都可以解決問題,但我不確定使用哪一個。

有什么建議? PS:這兩個包都可能包含嵌套目錄。

掛鈎是在 PyInstaller 找到導入語句時指定附加操作的文件。

如果您添加一個hook-data.py文件,其中包含一行hiddenimports = ['_proxy', 'utils', 'defs'] ,PyInstaller 將在看到import data時檢查它以查找其他import data

您必須通過--additional-hooks-dir指定鈎子目錄的路徑(如果您不想將源代碼與僅編譯文件混合,而是將它們保存在單獨的目錄中,這將很有用)。

更簡單的解決方案是將--hidden-import=modulename與 PyInstaller 腳本一起使用。 它將以靜默方式添加modulename作為 import 語句。

如果您想指定哪個導入需要哪些附加模塊,則鈎子會更好。 --hidden-import作為一次性或調試更簡單。

更多信息 - https://pyinstaller.readthedocs.io/en/stable/hooks.html

使用Auto-py-to-exe添加隱藏庫。 其他文件中添加Rasterio文件夾(C:/users/Admin/anaconda3/envs/name/Lib/site-packages/rasterio) ,然后轉換為 exe。

它對我有用。 如果它說缺少其他一些庫,則也添加該庫的文件夾。

暫無
暫無

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

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