Managing dependencies when deploying your app
在开始开发应用程序之前,您通过安装Python和Streamlit来设置和配置开发环境。当您部署应用程序时,您需要以相同的方式设置和配置部署环境。当您将应用程序部署到云服务时,您的应用程序的Python服务器将在远程机器上运行。这台远程机器将无法访问您个人计算机上的所有文件和程序。
所有Streamlit应用程序至少有两个依赖项:Python和Streamlit。您的应用程序可能还有额外的依赖项,这些依赖项可能是Python包或必须安装的软件,以便正确执行您的脚本。如果您使用的是像Streamlit Community Cloud这样专为Streamlit应用程序设计的服务,我们将为您处理Python和Streamlit!
Install Python and other software
如果您正在使用Streamlit Community Cloud,Python已经安装好了。您只需在部署对话框中选择版本即可。如果您需要自己安装Python或有其他非Python软件需要安装,请按照您平台的说明安装额外软件。您通常会使用包管理工具来完成此操作。
例如,Streamlit Community Cloud使用高级包工具(apt)用于基于Debian的Linux系统。有关在Streamlit Community Cloud上安装非Python依赖项的更多信息,请参阅apt-get dependencies。
Install Python packages
一旦你在部署环境中安装了Python,你需要安装所有必要的Python包,包括Streamlit!每次import已安装的包时,你都会向脚本中添加一个Python依赖项。你需要通过Python包管理器在部署环境中安装这些依赖项。
如果您使用的是Streamlit社区云,默认情况下您将安装最新版本的Streamlit及其所有依赖项。因此,如果您正在制作一个简单的应用程序并且不需要额外的依赖项,您将无需做任何事情!
pip and requirements.txt
由于pip默认随Python一起提供,配置Python环境的最常见方式是使用requirements.txt文件。requirements.txt文件的每一行都是一个要pip install的包。你不应该在requirements.txt文件中包含内置的Python库,如math、random或distutils。这些是Python的一部分,不需要单独安装。
提示
由于依赖项可能依赖于特定版本的Python,始终要注意开发环境中使用的Python版本,并为部署环境选择相同的版本。
如果你有一个如下所示的脚本,你只需要安装Streamlit。不需要额外的依赖,因为pandas和numpy是作为streamlit的直接依赖安装的。同样,math和random是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依赖项以获取更多信息。否则,请查看您平台的文档。
还有问题吗?
我们的 论坛 充满了有用的信息和Streamlit专家。