如何从 Streamlit 下载 exe 文件?
How to download exe file from Streamlit?
我制作了一个 .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')
我将路径库添加到 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)
尝试以下方法,另请参阅 doc。
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"
)
我制作了一个 .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')
我将路径库添加到 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)
尝试以下方法,另请参阅 doc。
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"
)