【问题标题】:Adding a local repository for dependency injection in python on google cloud在谷歌云上的python中为依赖注入添加本地存储库
【发布时间】:2018-05-31 15:24:45
【问题描述】:

我正在尝试在 Google Cloud 上部署 Python 应用。在应用程序中,我有一个实际上在本地可用的依赖项。因此,使用 pip 将其添加到项目中。我使用pip install -r requirements.txt --find-links PATH_TO_DEPENDENCY。在本地一切正常。但是当我使用 gcloud app deploy 在 Google Cloud 上部署它时,它会在内部调用 pip install -r requirements.txt,因此未安装本地依赖项并且代码失败。

有没有办法修改 gcloud 使用的内部命令或告诉服务器从某个地方使用该依赖项?

【问题讨论】:

    标签: python-3.x google-app-engine pip app-engine-flexible


    【解决方案1】:

    尝试的一种选择是使用虚拟环境和pip freeze 来捕获应用程序的所有需求,包括它们的依赖项:

    • 拉一个新的虚拟环境并使用pip freeze > requirements.1.txt对初始包内容进行快照
    • 使用本地调用来安装所有需求及其依赖项,然后使用pip freeze > requirements.2.txt 获取新快照
    • 构建一个新的requirements.txt,其中包含requirements.2.txt 中存在但requirements.1.txt 中缺少的所有包(即来自原始requirements.txt 或依赖项)

    然后为您的应用使用这个新的requirements.txt,它应该在部署期间提取所有依赖项pip install -r requirements.txt

    另一个选项,有点乏味但可用于无法通过pip 安装的依赖项,将基于相应的 google 提供的 docker 映像构建自定义运行时,您可以在其中添加额外的非 python 依赖项您的应用需要。来自About Custom Runtimes

    自定义运行时允许您定义新的运行时环境,其中可能包括语言解释器或应用程序服务器等附加组件。

    另见Building Custom Runtimes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 2022-08-16
      相关资源
      最近更新 更多