我正在构建一个应用程序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
我正在尝试使用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)
先感谢您!
我正在尝试在 heroku 中部署一个应用程序,并且它成功完成,但是当我单击查看该应用程序时,它在红色框中显示此错误!
\n\n\nOSError:[E050]找不到模型“en_core_web_trf”。它似乎不是 Python 包或数据目录的有效路径。
\n
这是我的代码:
\nimport 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) 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)
请问这是什么意思?我一直在尝试部署我的模型,但是当我运行它时,这个问题不断出现
所需的任务是在 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) 这是我在 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) 我一直在尝试更改多选小部件的颜色,特别是选择的颜色(橙色),看起来像这样
但没有任何成功。我在这里找到了一个讨论Streamlit:修改多选标签背景颜色,它改变了多选小部件除选择“框”之外的所有元素的颜色。有人知道我如何“覆盖”默认颜色值吗?
我也尝试过使用
span[data-baseweb="tag"]>span:first-child {background-color:#272272 !important;}
Run Code Online (Sandbox Code Playgroud)
但它只会改变橙色选择的中间部分,如下所示:

我想使用 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) 以下代码不显示索引的名称:
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 笔记本中那样显示?
我安装了 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) streamlit ×10
python ×8
correlation ×1
css ×1
docker ×1
download ×1
fastapi ×1
heatmap ×1
heroku ×1
pandas ×1
pyinstaller ×1
pynsist ×1
python-3.x ×1
scikit-learn ×1
spacy ×1
windows ×1