Nuitka/Nuitka

Streamlit compilation

オープン

#2,860 opened on 2024/05/15

 (10 件のコメント) (0 件のリアクション) (1 人の担当者)Python (565 件のフォーク)batch import
enhancementfunding_wantedhelp wanted

Repository metrics

Stars
 (10,351 個のスター)
PR merge metrics
 (PR metrics pending)

説明

Hello!

2.2 Commercial: None Python: 3.12.1 (tags/v3.12.1:2305ca5, Dec 7 2023, 22:03:25) [MSC v.1937 64 bit (AMD64)] Flavor: CPython Official Executable: D:\Python\StreamlitProject\venv\Scripts\python.exe OS: Windows Arch: x86_64 WindowsRelease: 11

Naked==0.1.32 ├── PyYAML [required: Any, installed: 6.0.1] └── requests [required: Any, installed: 2.31.0] ├── certifi [required: >=2017.4.17, installed: 2023.11.17] ├── charset-normalizer [required: >=2,<4, installed: 3.3.2] ├── idna [required: >=2.5,<4, installed: 3.6] └── urllib3 [required: >=1.21.1,<3, installed: 2.2.0] netifaces==0.11.0 Nuitka==2.2 ├── ordered-set [required: >=4.1.0, installed: 4.1.0] └── zstandard [required: >=0.15, installed: 0.22.0] pip==23.2.1 pipdeptree==2.13.2 psutil==5.9.8 pyarmor==8.5.7 └── pyarmor.cli.core [required: ~=6.5.1, installed: 6.5.1] pycryptodome==3.20.0 pycryptodomex==3.20.0 shellescape==3.8.1 st-pages==0.4.5 └── streamlit [required: >=1.10.0, installed: 1.28.0] ├── altair [required: >=4.0,<6, installed: 5.2.0] │ ├── Jinja2 [required: Any, installed: 3.1.3] │ │ └── MarkupSafe [required: >=2.0, installed: 2.1.4] │ ├── jsonschema [required: >=3.0, installed: 4.21.1] │ │ ├── attrs [required: >=22.2.0, installed: 23.2.0] │ │ ├── jsonschema-specifications [required: >=2023.03.6, installed: 2023.12.1] │ │ │ └── referencing [required: >=0.31.0, installed: 0.33.0] │ │ │ ├── attrs [required: >=22.2.0, installed: 23.2.0] │ │ │ └── rpds-py [required: >=0.7.0, installed: 0.17.1] │ │ ├── referencing [required: >=0.28.4, installed: 0.33.0] │ │ │ ├── attrs [required: >=22.2.0, installed: 23.2.0] │ │ │ └── rpds-py [required: >=0.7.0, installed: 0.17.1] │ │ └── rpds-py [required: >=0.7.1, installed: 0.17.1] │ ├── numpy [required: Any, installed: 1.26.3] │ ├── packaging [required: Any, installed: 23.2] │ ├── pandas [required: >=0.25, installed: 2.2.0] │ │ ├── numpy [required: >=1.26.0,<2, installed: 1.26.3] │ │ ├── python-dateutil [required: >=2.8.2, installed: 2.8.2] │ │ │ └── six [required: >=1.5, installed: 1.16.0] │ │ ├── pytz [required: >=2020.1, installed: 2023.4] │ │ └── tzdata [required: >=2022.7, installed: 2023.4] │ └── toolz [required: Any, installed: 0.12.1] ├── blinker [required: >=1.0.0,<2, installed: 1.7.0] ├── cachetools [required: >=4.0,<6, installed: 5.3.2] ├── click [required: >=7.0,<9, installed: 8.1.7] │ └── colorama [required: Any, installed: 0.4.6] ├── GitPython [required: >=3.0.7,<4,!=3.1.19, installed: 3.1.41] │ └── gitdb [required: >=4.0.1,<5, installed: 4.0.11] │ └── smmap [required: >=3.0.1,<6, installed: 5.0.1] ├── importlib-metadata [required: >=1.4,<7, installed: 6.11.0] │ └── zipp [required: >=0.5, installed: 3.17.0] ├── numpy [required: >=1.19.3,<2, installed: 1.26.3] ├── packaging [required: >=16.8,<24, installed: 23.2] ├── pandas [required: >=1.3.0,<3, installed: 2.2.0] │ ├── numpy [required: >=1.26.0,<2, installed: 1.26.3] │ ├── python-dateutil [required: >=2.8.2, installed: 2.8.2] │ │ └── six [required: >=1.5, installed: 1.16.0] │ ├── pytz [required: >=2020.1, installed: 2023.4] │ └── tzdata [required: >=2022.7, installed: 2023.4] ├── pillow [required: >=7.1.0,<11, installed: 10.2.0] ├── protobuf [required: >=3.20,<5, installed: 4.25.2] ├── pyarrow [required: >=6.0, installed: 15.0.0] │ └── numpy [required: >=1.16.6,<2, installed: 1.26.3] ├── pydeck [required: >=0.8.0b4,<1, installed: 0.8.1b0] │ ├── Jinja2 [required: >=2.10.1, installed: 3.1.3] │ │ └── MarkupSafe [required: >=2.0, installed: 2.1.4] │ └── numpy [required: >=1.16.4, installed: 1.26.3] ├── python-dateutil [required: >=2.7.3,<3, installed: 2.8.2] │ └── six [required: >=1.5, installed: 1.16.0] ├── requests [required: >=2.27,<3, installed: 2.31.0] │ ├── certifi [required: >=2017.4.17, installed: 2023.11.17] │ ├── charset-normalizer [required: >=2,<4, installed: 3.3.2] │ ├── idna [required: >=2.5,<4, installed: 3.6] │ └── urllib3 [required: >=1.21.1,<3, installed: 2.2.0] ├── rich [required: >=10.14.0,<14, installed: 13.7.0] │ ├── markdown-it-py [required: >=2.2.0, installed: 3.0.0] │ │ └── mdurl [required: ~=0.1, installed: 0.1.2] │ └── pygments [required: >=2.13.0,<3.0.0, installed: 2.17.2] ├── tenacity [required: >=8.1.0,<9, installed: 8.2.3] ├── toml [required: >=0.10.1,<2, installed: 0.10.2] ├── tornado [required: >=6.0.3,<7, installed: 6.4] ├── typing-extensions [required: >=4.3.0,<5, installed: 4.9.0] ├── tzlocal [required: >=1.1,<6, installed: 5.2] │ └── tzdata [required: Any, installed: 2023.4] ├── validators [required: >=0.2,<1, installed: 0.22.0] └── watchdog [required: >=2.1.5, installed: 3.0.0]

The simple "helloworld" command compiles, but when compiling Streamlit, errors occur.

main.py

import streamlit.web.cli as stcli
import sys
import page
import os

if __name__ == "__main__":
    src = os.path.join(os.path.dirname(__file__), 'page.py')
    sys.argv = ['streamlit', 'run', src, '--global.developmentMode=false']
    sys.exit(stcli.main())
...

page.py

import streamlit as st

st.write("Hello world!")

The command I used to compile is python -m nuitka --standalone --enable-plugin=anti-bloat --enable-plugin=numpy main.py

Screenshot 2024-05-15 160322

Screenshot 2024-05-15 161925

Screenshot 2024-05-15 161945

image image

So, is there any possible way to compile Streamlit with Nuitka without leaving a streamlit-code uncompiled? The only thing I figured out reading related issues is that nuitka actually does support streamlit.

Thanks!

コントリビューターガイド