簡體   English   中英

使用pyinstaller創建單個exe文件時導入錯誤

[英]Import error when using pyinstaller to create a single exe file

我有一個涉及多個python模塊的python軟件包。 該項目已在pycharm中創建。 我已經使用pyinstaller創建了我的python包的單個可執行文件。 當我使用批處理文件運行可執行文件時,出現導入錯誤,特別是熊貓導入失敗。 pyinstaller還沒有在我的虛擬環境中還收集軟件包依賴項的原因嗎?

在此先感謝您的幫助!

我有以下2個錯誤:(1)ModuleNotFoundError:沒有名為“ pandas._libs.tslibs.np_datetime”的模塊

(2)在ImportError:C擴展名的第35行,文件“ site-packages \\ pandas__init __。py”:沒有建立名為'pandas._libs.tslibs.np_datetime'的模塊。 如果要從源目錄導入熊貓,可能需要運行“ python setup.py build_ext --inplace --force”以首先構建C擴展。

每個虛擬環境都有一個pip腳本。 因此,當您安裝python模塊時,它將安裝到projectname \\ venv \\ Lib \\ site-packages目錄中。

當您從終端運行pyinstaller以生成可執行文件時,pyinstaller會檢查Sys.path中的依賴 但是該路徑不包括projectname \\ venv \\ Lib \\ site-packages目錄。 因此,pyinstaller無法找到那些特定的依賴項。 在這種情況下,它會向您發出警告。可以在可執行文件附近的“ warnname.txt”中找到這些警告。

編輯: 如何配置pycharm以運行pyinstaller

  1. 首先,您需要將pyinstaller添加到項目解釋器中。 在此處輸入圖片說明
  2. 然后,您需要設置運行配置。 在此處輸入圖片說明

    在此處輸入圖片說明

    腳本名稱: python腳本的路徑
    工作路徑:項目所在地

    保留解釋器選項在圖像中的位置。

  3. 運行pyinstaller。 您可以在dist目錄中找到您的.exe

  4. 如果“找不到模塊”錯誤仍然存​​在。 您可以添加一個隱藏的導入掛鈎並指定缺少的模塊的名稱。

項目路徑\\ venv \\ Lib \\ site-packages \\ PyInstaller \\ hooks

並創建一個新的“ hook-pandas.py” (hook-modulename.py)腳本,並列出這樣的隱藏導入模塊列表。

hiddenimports = ['pandas._libs.tslibs.np_datetime','pandas._libs.tslibs.nattype','pandas._libs.skiplist']
  1. 並再次運行pyinstaller,它現在應該可以工作了。

暫無
暫無

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

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