python - 有没有办法将 TextBlob 语料库下载到 Google Cloud Run?
问题描述
我正在使用 Python 和 TextBlob 进行情绪分析。我想使用 Google Cloud Build(不使用 Docker)将我的应用程序(在 Plotly Dash 中构建)部署到 Google Cloud Run。在我的虚拟环境上本地使用时一切正常,但在将其部署到云上后,不会下载语料库。查看 requriements.txt 文件,也没有对这个语料库的引用。
我试图添加python -m textblob.download_corpora
到我的 requriements.txt 文件中,但在我部署它时它没有下载。我也尝试添加
import textblob
import subprocess
cmd = ['python','-m','textblob.download_corpora']
subprocess.run(cmd)
和
import nltk
nltk.download('movie_reviews')
到我的脚本(callbacks.py,我正在使用 Plotly Dash 制作我的应用程序),但都没有成功。
有没有办法将此语料库添加到我的 requirements.txt 文件中?还是有另一种解决方法来下载这个语料库?我怎样才能解决这个问题?
提前致谢!
维杰
解决方案
由于 Cloud Run 根据流量级别的需要创建和销毁容器,您需要将语料库嵌入到预构建的容器中,以确保快速冷启动时间(而不是在容器启动时下载它)
最简单的方法是在 docker 文件中添加另一行,该文件在构建时下载并安装语料库,如下所示:
RUN python -m textblob.download_corpora
这是一个完整的 docker 文件供您参考:
# Python image to use.
FROM python:3.8
# Set the working directory to /app
WORKDIR /app
# copy the requirements file used for dependencies
COPY requirements.txt .
# Install any needed packages specified in requirements.txt
RUN pip install --trusted-host pypi.python.org -r requirements.txt
RUN python -m textblob.download_corpora
# Copy the rest of the working directory contents into the container at /app
COPY . .
# Run app.py when the container launches
ENTRYPOINT ["python", "app.py"]
祝你好运,乔什