我制作了一個 .py 腳本,將其轉換為 .exe 檔案,以使用 pyinstaller 制作一個 Windows 桌面應用程式。我這樣做了:
pyinstaller --onefile -w test.py
用戶如何使用 Streamlit 下載此應用程式?專門使用 Streamlit 下載按鈕。
我試過 st.download_button('Download app', data='app.exe', file_name='App.exe')
它不起作用,并且 Windows 計算機出現藍框錯誤(例如當您的電池電量不足時),表示無法運行此應用程式。可能是因為引數data是字串而不是檔案目錄,所以我嘗試了:
from pathlib import Path
exe_path = "drowsy_setup.exe"
path = Path(exe_path)
st.download_button('Download app', data=path, file_name='Drowsy_App.exe')
我將 pathlib 添加到 requirements.txt 檔案,但它給出了一個錯誤:
RuntimeError: This app has encountered an error. The original error message is redacted to prevent data leaks. Full error details have been recorded in the logs.
Traceback:
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/script_runner.py", line 354, in _run_script
exec(code, module.__dict__)
File "/app/website-desktop-app/test.py", line 15, in <module>
st.download_button('Download app', data=path, file_name='Drowsy_App.exe')
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/elements/button.py", line 212, in download_button
self.dg._get_delta_path_str(), data, download_button_proto, mime, file_name
File "/home/appuser/venv/lib/python3.7/site-packages/streamlit/elements/button.py", line 313, in marshall_file
raise RuntimeError("Invalid binary data format: %s" % type(data))
我嘗試在 requirements.txt 中不使用 pathlib,因為它是默認的 python 庫,但它給出了相同的錯誤。如何修復此錯誤?有沒有更好的方法來使用 Streamlit 下載桌面應用程式?
版本: python(3.7), streamlit(1.3.0)
uj5u.com熱心網友回復:
請嘗試以下操作,另請參閱檔案。
binary_file = 'Drowsy_App.exe'
with open(binary_file, "rb") as file:
btn = st.download_button(
label="Download Drowsy_App.exe",
data=file,
file_name="Drowsy_App.exe",
mime="application/octet-stream"
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/408674.html
標籤:
