标签: streamlit

将 Streamlit 应用程序转换为 pyinstaller 可执行文件

我正在构建一个应用程序streamlit,由于多种原因,该应用程序无法托管在服务器上。最受阻碍的原因是它也应该在没有互联网接入的情况下工作。因此,我想将我的应用程序转换为某种可执行文件,用户可以在自己的笔记本电脑上运行,并且该应用程序托管在本地主机上。

我有以下代码:

import streamlit.cli as stcli
import sys

def streamlit_run():
    sys.argv = ["streamlit", "run", "main.py", "--global.developmentMode=false"]
    sys.exit(stcli.main())


if __name__ == '__main__':
    streamlit_run()
Run Code Online (Sandbox Code Playgroud)

main.py现在是一个简单的 hello-world 应用程序。如果我跑

python wrapper.py
Run Code Online (Sandbox Code Playgroud)

在我的命令行中,应用程序在本地主机上运行。我使用pyinstaller运行将其转换为可执行文件

pyinstaller --onefile script.py
Run Code Online (Sandbox Code Playgroud)

并创建一个可执行文件。然而,如果我运行这个可执行文件,什么也不会发生:我只看到一瞬间的黑屏,仅此而已。对我如何解决这个问题有任何帮助吗?任何其他让客户使用该应用程序而不将其托管在服务器上的解决方案也将受到赞赏!

版本: python==3.9 streamlit==0.73.0 pyinstaller==4.1

python pyinstaller streamlit

5
推荐指数
0
解决办法
4298
查看次数

如何在streamlit中显示热图颜色相关图

我正在尝试使用streamlit进行可视化。我拥有的内容之一是这样的相关性: 在此输入图像描述但我希望它有像热图一样的颜色

这是我的相关代码

df_col = pd.concat([df5, df6,df7,df8,df9], axis=1)
    df5.columns = ['month', 'price_kcl', 'change_kcl']
    df6.columns = ['month_fosfat', 'price_fosfat', 'change_fosfat']
    df7.columns = ['month_bb', 'price_bara', 'change_bb']
    df8.columns = ['month_urea', 'price_urea', 'change_urea']
    df9.columns = ['month_npk', 'price_npk', 'change_npk']
    df_col = pd.concat([df5, df6,df7,df8,df9], axis=1)
    df5.columns = ['month', 'price_kcl', 'change_kcl']
    df6.columns = ['month_fosfat', 'price_fosfat', 'change_fosfat']
    df7.columns = ['month_bb', 'price_bara', 'change_bb']
    df8.columns = ['month_urea', 'price_urea', 'change_urea']
    df9.columns = ['month_npk', 'price_npk', 'change_npk']
    df_col = df_col.set_index('month')
    df_corr = df_col.corr()
    st.write(df_corr)
    plt.matshow(df_col.corr())
Run Code Online (Sandbox Code Playgroud)

先感谢您!

python heatmap correlation streamlit

5
推荐指数
1
解决办法
1万
查看次数

OSError:[E050]找不到模型“en_core_web_trf”。它似乎不是 Python 包或数据目录的有效路径

我正在尝试在 heroku 中部署一个应用程序,并且它成功完成,但是当我单击查看该应用程序时,它在红色框中显示此错误!

\n
\n

OSError:[E050]找不到模型“en_core_web_trf”。它似乎不是 Python 包或数据目录的有效路径。

\n
\n

这是我的代码:

\n
import spacy_streamlit\nimport streamlit as st\nimport pandas as pd\nfrom spacy_transformers import Transformer\nfrom spacy_transformers.pipeline_component import DEFAULT_CONFIG\n\nDEFAULT_TEXT = """Google was founded in September 1998 by Larry Page and Sergey Brin while they were Ph.D. students at Stanford University in California. Together they own about 14 percent of its shares and control 56 percent of the stockholder voting power through supervoting stock. They incorporated Google as a California privately held company on …
Run Code Online (Sandbox Code Playgroud)

python heroku python-3.x spacy streamlit

5
推荐指数
2
解决办法
4831
查看次数

FutureWarning:如果 dtype='numeric',则字节/字符串数组将转换为十进制数字

FutureWarning: Arrays of bytes/strings is being converted to decimal numbers if 
dtype='numeric'. This behavior is deprecated in 0.24 and will be removed in 1.1 (renaming of 0.26). 
Please convert your data to numeric values explicitly instead.
Run Code Online (Sandbox Code Playgroud)

请问这是什么意思?我一直在尝试部署我的模型,但是当我运行它时,这个问题不断出现

python scikit-learn deprecation-warning streamlit

5
推荐指数
1
解决办法
1万
查看次数

数据预处理后从 Streamlit Web 应用程序下载数据帧时出错

所需的任务是在 Streamlit 上部署数据预处理 Web 应用程序,用户可以在其中上传原始数据帧并下载处理后的数据帧。我正在尝试下载已完成数据预处理(例如缺失值插补)的文件,但出现如下错误:

RuntimeError: Invalid binary data format: <class 'pandas.core.frame.DataFrame'>
Run Code Online (Sandbox Code Playgroud)

我不知道如何解决这个问题。请帮助我,因为我是 python 和 StreamLit 的新手。代码是

import streamlit as st
import pandas as pd
import os
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
temp='\\temp.csv'
path=os.getcwd()
path=path+temp

def upload_csv(zxc):
    if zxc:
        df=pd.read_csv(zxc)
        st.dataframe(df)
        df.to_csv(path,index=False)
        return df
    

def upload_xlsx(zxc):
    if zxc:
        df=pd.read_excel(zxc)
        st.dataframe(df)
        df.to_csv(path,index=False)
        return df

def mvt_mean(df):
    new_df=df.fillna(df.mean())
    new_df=new_df.fillna(df.select_dtypes(include='object').mode().iloc[0])
    st.dataframe(new_df)
    return new_df


def mvt_median(df):
    new_df=df.fillna(df.median())
    new_df=new_df.fillna(df.select_dtypes(include='object').mode().iloc[0])
    st.dataframe(new_df)
    return new_df

def mvt_mode(df):
    new_df=df.fillna(df.select_dtypes(include='object').mode().iloc[0])
    st.dataframe(new_df)
    return new_df

def export_data():
    with open('temp.csv','r+') …
Run Code Online (Sandbox Code Playgroud)

python download file-handling streamlit data-preprocessing

5
推荐指数
1
解决办法
4726
查看次数

打包 Streamlit 应用程序并在 Windows 上运行可执行文件

这是我在 Stackoverflow 上的第一个问题。我希望我的问题很清楚,否则请告诉我,并随时向我询问更多详细信息。

我正在尝试为个人项目打包一个 Streamlit 应用程序。我正在 Linux 下开发,但我必须在 Windows 上部署该应用程序。我希望它是一个独立的可执行文件,一旦运行,它就会打开浏览器选项卡以显示应用程序,并在选项卡关闭时退出。我想使用pynsist库来打包应用程序(已用于另一个项目并且工作正常)。

我遵循了本次讨论中的建议。它在 ubuntu 上运行良好,在使用 pynsist 打包应用程序后,显然在 Windows 上也运行良好。“显然”是因为可执行文件运行,但没有打开浏览器选项卡来显示该应用程序。

这是我的代码的一些片段。

项目结构

|- installer.cfg
|- src
    |- main.py
    |- run_app.py
Run Code Online (Sandbox Code Playgroud)

主要.py

import streamlit as st

st.title("Test")
st.title("My first app deployed with Pynsist!")
Run Code Online (Sandbox Code Playgroud)

run_app.py (托马斯·K评论后编辑2 )

import os
import subprocess
import sys

from src.config import EnvironmentalVariableNames as EnvVar, get_env

def main():
    executable = sys.executable
    result = subprocess.run(
        f"{executable} -m streamlit run {os.path.join(get_env(EnvVar.EMPORIO_VESTIARIO_DASHBOARD_WORKING_DIR), 'src', 'main.py')}",
        shell=True,
        capture_output=True,
        text=True,
    )


if __name__ …
Run Code Online (Sandbox Code Playgroud)

python windows pynsist streamlit

5
推荐指数
1
解决办法
1万
查看次数

Streamlit:更改多选小部件的颜色

我一直在尝试更改多选小部件的颜色,特别是选择的颜色(橙色),看起来像这样

在此输入图像描述

但没有任何成功。我在这里找到了一个讨论Streamlit:修改多选标签背景颜色,它改变了多选小部件除选择“框”之外的所有元素的颜色。有人知道我如何“覆盖”默认颜色值吗?

我也尝试过使用

span[data-baseweb="tag"]>span:first-child {background-color:#272272 !important;}
Run Code Online (Sandbox Code Playgroud)

但它只会改变橙色选择的中间部分,如下所示:

在此输入图像描述

css streamlit

5
推荐指数
1
解决办法
8827
查看次数

docker 中的 Nginx、fastapi 和 Streamlit - 反向代理不适用于 Streamlit

我想使用 docker 来容器化 nginx、fastapi 和 2 个 Streamlit 应用程序。所有 3 个应用程序(fastapi、2streamlit 应用程序)不会相互交互。Nginx 应该作为这 3 个应用程序的反向代理。对于 fastapi 来说它正在工作。我可以将rest-api请求发送到http://ip:80/twxservices。“twxservices”作为端点添加到 app.py 文件中,而不是添加到 nginxconfig 中。

无法通过 http://ip:80/stream1 和 http://ip:80/stream2 访问 Streamlit 应用程序 我收到错误:404:未找到

在此先感谢您的帮助。在下面找到文件结构和配置文件。这是文件结构以及反向代理应该如何工作:

在此输入图像描述 在此输入图像描述

docker-compose 文件:


services:
  web:
    build:
      context: ./nginxfolder
      dockerfile: Dockerfile
    container_name: web
   
    ports:
      - 80:80
    networks:
      - my-network
    depends_on:
      - app

  app:
    build:
      context: ./twxservicesfolder
      dockerfile: Dockerfile
    container_name: app
 
    networks:
      - my-network
      
  spectrum:
    build:
      context: ./spectrumfolder
      dockerfile: Dockerfile
    container_name: spectrum

    networks:
      - my-network
      
  dgraph:
    build:
      context: ./dgraphfolder
      dockerfile: Dockerfile
    container_name: dgraph …
Run Code Online (Sandbox Code Playgroud)

python docker nginx-reverse-proxy fastapi streamlit

5
推荐指数
1
解决办法
1828
查看次数

使用 Streamlit 显示数据帧索引名称

以下代码不显示索引的名称:

import pandas as pd
import streamlit as st

df = pd.DataFrame(['row1', 'row2'], index=pd.Index([1, 2], name='my_index'))
st.write(df)
Run Code Online (Sandbox Code Playgroud)

数据框没有

有没有办法my_index像在 jupyter 笔记本中那样显示?

在此输入图像描述

pandas streamlit

5
推荐指数
1
解决办法
3335
查看次数

导入 Hydralit 时出错:“ModuleNotFoundError:没有名为“streamlit.report_thread”的模块”

我安装了 Hydralit,但当我尝试导入时出现以下错误:“ModuleNotFoundError:没有名为“streamlit.report_thread”的模块”。有趣的是,我可以导入和使用 Hydralit_components。

使用的版本:

hydralit >=1.0.9
hydralit_components >=1.0.4
streamlit >=0.89
python ==3.8.10
Run Code Online (Sandbox Code Playgroud)

完整错误:

Python 3.8.10 (default, Nov 26 2021, 20:14:08) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import hydralit
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/lorena/.local/lib/python3.8/site-packages/hydralit/__init__.py", line 1, in <module>
    from hydralit.hydra_app import HydraApp
  File "/home/lorena/.local/lib/python3.8/site-packages/hydralit/hydra_app.py", line 5, in <module>
    from hydralit.sessionstate import SessionState
  File "/home/lorena/.local/lib/python3.8/site-packages/hydralit/sessionstate.py", line 1, in <module>
    import streamlit.report_thread as ReportThread
ModuleNotFoundError: No module …
Run Code Online (Sandbox Code Playgroud)

python streamlit

5
推荐指数
1
解决办法
5687
查看次数