首页 > 解决方案 > 有没有办法将 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 文件中?还是有另一种解决方法来下载这个语料库?我怎样才能解决这个问题?

提前致谢!

维杰

标签: pythonnlpnltkgoogle-cloud-runtextblob

解决方案


由于 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"]

祝你好运,乔什


推荐阅读