🖥️
Streamlit appをデスクトップアプリ化する
PyCharmを使った例です。
- 新規プロジェクトを作成
- venvでPython 3.11を指定(Pyodideが最新に対応していないかもしれないので)
- プロジェクトルートにディレクトリを作成
- 名前は何でもいいけどプロジェクトファイルと同じ名前が普通
mkdir {your_dir}
- 作ったディレクトリに
streamlit_app.py
を作成- 名前はこれじゃないといけない
touch {your_dir}/streamlit_app.py
{your_dir}/streamlit_app.py(例)
import streamlit as st
def main():
st.title('Streamlit Desktop App')
if __name__ == '__main__':
main()
- requirements.txtをプロジェクトルートに準備
touch requirements.txt
- pip install -r requirements.txt
- package.jsonをプロジェクトルートに準備
touch package.json
- 以下のコードをコピー&ペースト("name": "xxx"は書き換える)
- npm installを実行
package.json
{
"name": "xxx",
"version": "0.1.0",
"main": "./build/electron/main.js",
"scripts": {
"dump": "dump-stlite-desktop-artifacts",
"serve": "cross-env NODE_ENV=production electron .",
"pack": "electron-builder --dir",
"dist": "electron-builder",
"postinstall": "electron-builder install-app-deps"
},
"build": {
"files": ["build/**/*"],
"directories": {
"buildResources": "assets"
}
},
"devDependencies": {
"@stlite/desktop": "0.38.1",
"cross-env": "^7.0.3",
"electron": "^25.2.0",
"electron-builder": "^24.4.0"
}
}
npm run dump {your_dir}
-
npm run serve
- 動作を確認
-
npm run dist
- macOS:
npm run dist -- --mac
- Windows:
npm run dist -- --win
- Linux:
npm run dist -- --linux deb rpm
- macOS:
参考
Discussion