Python google cloud function部署失败-Madmom pip包

标签 python google-cloud-platform pip google-cloud-functions requirements.txt

我正在尝试使用“madmom”python pip 包部署 Python3.7 Google Cloud Function,但是在 requirements.txt 中指定 madmom==0.16.1 会导致部署失败。当我从 requirements.txt 中删除 madmom,但保留其他 pip 包时,云功能部署正常。

妈妈 pypi:https://pypi.org/project/madmom/

妈妈 github:https://github.com/CPJKU/madmom

我从 Google Cloud Function 的在线编辑器部署函数:https://console.cloud.google.com/functions/add

我之前部署过 Python Google Cloud Functions,这是我第一次遇到问题。任何帮助将不胜感激!我整天都在尝试在线寻找解决方案,但一无所获。

要求.txt:

Cython==0.29.12
ffmpeg==1.4
flask==1.0.2
madmom==0.16.1
mido==1.2.9
numpy==1.16.4
scipy==1.3.0
six==1.12.0
urllib3==1.24.2

谷歌云函数部署失败:

Deployment failure:

Build failed: {"error": {"canonicalCode": "INVALID_ARGUMENT", "errorMessage": "pip_download_wheels had stderr output:\nCommand \"python setup.py egg_info\" failed with error code 1 in /tmp/pip-wheel-qjxrm41i/madmom/\n\nerror: pip_download_wheels returned code: 1", "errorType": "InternalError", "errorId": "66F138B2"}}

非常感谢您的帮助!

最佳答案

问题出在 madmom包:它对 cython 具有构建时依赖性和 numpy ,但它们没有正确声明。 Cloud Functions(与大多数运行时一样)会同时安装所有依赖项,但 madmom需求cythonnumpy安装之前它可以安装,这不是通过简单的requirements.txt配置的文件。

我做了 a PR to fix this ,它已被合并,可能会在下一个版本中。

与此同时,您可以安装 madmom通过使用以下 requirements.txt 从源存储库文件:

git+https://github.com/CPJKU/madmom.git#egg=madmom
ffmpeg==1.4
flask==1.0.2

(请注意,您不应在此处指定顶级依赖项的所有子依赖项(如 Cythonurllib3 ,除非您实际将它们导入到 Cloud Function 中)

关于Python google cloud function部署失败-Madmom pip包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58233081/

相关文章:

python - 为什么这个装饰器不能从带有 "from module import *"的模块导入?

python - 如何在没有人为干预的情况下回答从 python 脚本调用的 bash 脚本提出的问题

google-app-engine - Appengine 应用程序部署未上传某些文件夹

python - 如何使用python检查GCS中是否存在桶

excel - 在 python 2.7 中安装 openpyxl

python - 如何在虚拟环境和/或 python 安装之间共享库

python - 如果以非贪婪方式使用,python 正则表达式中量词 {m,n} 中的第二个限制有什么用?

python - 从 ls -1hl 命令的输出中查找超过 100 MB 的文件

mysql - 无法通过 SSL 连接到 Google SQL

python - Pip 并解决存储库要求