【问题标题】:Is there a way to download TextBlob corpora to Google Cloud Run?有没有办法将 TextBlob 语料库下载到 Google Cloud Run?
【发布时间】:2021-07-31 22:25:53
【问题描述】:

我正在使用 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 文件中?还是有另一种解决方法来下载这个语料库?我该如何解决这个问题?

提前致谢!

维杰

【问题讨论】:

    标签: python nlp nltk google-cloud-run textblob


    【解决方案1】:

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

    祝你好运, 乔什

    【讨论】:

    • 嗨乔希,感谢您的解决方案。很高兴知道我可以使用 Docker 作为后备。但是,目前,我正在使用 Cloud Buildpack 自动编译容器。有没有办法使用 Cloud Buildpack 安装 TextBlob? Heroku 有一个解决方案:python-nltk,谷歌有类似的解决方案吗?
    • @VijayB 您可以customize the Buildpack 为您安装语料库,但我认为从 Cloudbuild 切换到使用 dockerfile 可能更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2022-10-05
    • 1970-01-01
    • 2021-02-12
    • 2021-03-13
    • 2020-01-06
    • 2016-02-03
    相关资源
    最近更新 更多