[英]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.