簡體   English   中英

Python3 | 安裝程序 | 如何將excel文件添加到exe

[英]Python3 | Pyinstaller | how do I add an excel file to the exe

我正在嘗試從 python 腳本中創建一個 exe,該腳本也使用了一個 excel 文件。 但是每次運行exe時,都會出現以下錯誤:

FileNotFoundError: [Errno 2] No such file or directory: 'Example.xlsx'

我真的不明白我做錯了什么,希望你能幫助我。 我的文件夾包含以下三個文件:

main.py
functions.py
Example.xlsx

接下來,我在終端中運行 pyinstaller:

pyinstaller --onefile --add-data "Example.xlsx:." main.py

然后它會創建帶有主 exe 的 dist 目錄。 但是當我運行它時,它給了我提到的錯誤。 我的 main.spec 文件顯示了“數據”的以下內容,我認為是正確的:

a = Analysis(...,
             datas=[('210307 Valuation portfolio (HC).xlsx', '.')],
             ...)

我在這里做錯了什么?

這是因為 pyinstaller 提取到一個隨機的臨時位置,然后運行您的文件。

可以使用sys._MEIPASS位置訪問該位置。

幾年前我遇到了一個輔助函數,它可以在開發和部署過程中很容易地確定這個位置:

import sys, os

def resource_path(relative_path):
    """ Get absolute path to resource, works for dev and for PyInstaller """
    try:
        # PyInstaller creates a temp folder and stores path in _MEIPASS
        base_path = sys._MEIPASS
    except Exception:
        base_path = os.path.abspath(".")

    return os.path.join(base_path, relative_path)

要使用它,請為該函數指定文件名,它將返回一個絕對路徑。

暫無
暫無

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

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