Managing dependencies when deploying your app

在开始开发应用程序之前,您通过安装Python和Streamlit来设置和配置开发环境。当您部署应用程序时,您需要以相同的方式设置和配置部署环境。当您将应用程序部署到云服务时,您的应用程序的Python服务器将在远程机器上运行。这台远程机器将无法访问您个人计算机上的所有文件和程序。

所有Streamlit应用程序至少有两个依赖项:Python和Streamlit。您的应用程序可能还有额外的依赖项,这些依赖项可能是Python包或必须安装的软件,以便正确执行您的脚本。如果您使用的是像Streamlit Community Cloud这样专为Streamlit应用程序设计的服务,我们将为您处理Python和Streamlit!

如果您正在使用Streamlit Community Cloud,Python已经安装好了。您只需在部署对话框中选择版本即可。如果您需要自己安装Python或有其他非Python软件需要安装,请按照您平台的说明安装额外软件。您通常会使用包管理工具来完成此操作。 例如,Streamlit Community Cloud使用高级包工具(apt)用于基于Debian的Linux系统。有关在Streamlit Community Cloud上安装非Python依赖项的更多信息,请参阅apt-get dependencies

一旦你在部署环境中安装了Python,你需要安装所有必要的Python包,包括Streamlit!每次import已安装的包时,你都会向脚本中添加一个Python依赖项。你需要通过Python包管理器在部署环境中安装这些依赖项。

如果您使用的是Streamlit社区云,默认情况下您将安装最新版本的Streamlit及其所有依赖项。因此,如果您正在制作一个简单的应用程序并且不需要额外的依赖项,您将无需做任何事情!

由于pip默认随Python一起提供,配置Python环境的最常见方式是使用requirements.txt文件。requirements.txt文件的每一行都是一个要pip install的包。你不应该requirements.txt文件中包含内置的Python库,如mathrandomdistutils。这些是Python的一部分,不需要单独安装。

star

提示

由于依赖项可能依赖于特定版本的Python,始终要注意开发环境中使用的Python版本,并为部署环境选择相同的版本。

如果你有一个如下所示的脚本,你只需要安装Streamlit。不需要额外的依赖,因为pandasnumpy是作为streamlit的直接依赖安装的。同样,mathrandom是Python内置的。

import streamlit as st import pandas as pd import numpy as np import math import random st.write('Hi!')

然而,准确记录您使用的包是最佳实践,因此推荐的requirements.txt文件将是:

streamlit pandas numpy

如果您需要指定特定版本,另一个有效的例子是:

streamlit==1.24.1 pandas>2.0 numpy<=1.25.1

一个requirements.txt文件通常保存在您的仓库或文件目录的根目录中。如果您正在使用Streamlit Community Cloud,请参阅添加Python依赖项以获取更多信息。否则,请查看您平台的文档。

forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。