在GCP App Engine标准环境上安装cmake的解决方法

问题描述

对于需要dlib的应用程序,我需要在 App Engine Standard 上安装cmake软件包。以下是安装时遇到的错误。

我尝试在Requirements.txt中添加cmakecmake-setup,但是没有用。

ERROR: Failed to build one or more wheels
  ERROR: Failed building wheel for dlib
  ----------------------------------------
  
  *******************************************************************
   CMake must be installed to build the following extensions: _dlib_pybind11
  *******************************************************************
  RuntimeError:
      "\n*******************************************************************\n")
 File "/tmp/pip-wheel-hz_z90ap/dlib/setup.py",line 125,in get_cmake_version
      cmake_version = self.get_cmake_version()
    File "/tmp/pip-wheel-hz_z90ap/dlib/setup.py",line 129,in run
      cmd_obj.run()
    File "/opt/python3.7/lib/python3.7/distutils/dist.py",line 985,in run_command
      self.distribution.run_command(command)
    File "/opt/python3.7/lib/python3.7/distutils/cmd.py",line 313,in run_command
      self.run_command(cmd_name)
    File "/opt/python3.7/lib/python3.7/distutils/command/build.py",line 135,in run_command
      self.run_command('build')
    File "/env/lib/python3.7/site-packages/wheel/bdist_wheel.py",line 290,in run_command
      self.run_command(cmd)
    File "/opt/python3.7/lib/python3.7/distutils/dist.py",line 966,in run_commands
      dist.run_commands()
    File "/opt/python3.7/lib/python3.7/distutils/core.py",line 148,in setup
      return distutils.core.setup(**attrs)
    File "/env/lib/python3.7/site-packages/setuptools/__init__.py",line 144,in setup
      'Topic :: Software Development',File "/tmp/pip-wheel-hz_z90ap/dlib/setup.py",line 262,in <module>
    File "<string>",line 1,in <module>
  Traceback (most recent call last):
...

请提出修复建议。

解决方法

您可以通过自定义运行时在Flexible环境中使用非Python依赖项。来自About Custom Runtimes

自定义运行时允许您定义新的运行时环境, 可能包括其他组件,例如语言解释器或 应用服务器。

另请参阅Building Custom Runtimes

,

如果要自定义环境,可以使用容器。按照Dustin的建议将其部署在App Engine flexible上,但是请注意,App Engine Flex不会扩展为0,因此即使不使用服务也要付费。

因为您有一个容器,所以建议您看看Cloud Run。它与App Engine类似,但是缩放到0且功能非常强大。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...