Обходной путь для установки cmake в стандартную среду GCP App Engine

#python-3.x #google-app-engine #google-cloud-platform #cmake #google-app-engine-python

#python-3.x #google-app-engine #google-облачная платформа #cmake #google-app-engine-python

Вопрос:

Мне нужно установить dlib пакет на стандарт App Engine для приложения, которое требует cmake . Ниже приведена ошибка, с которой я столкнулся во время установки.

Я попытался добавить cmake и cmake-setup в requirements.txt но бесполезно.

 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
      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('build')
    File "/env/lib/python3.7/site-packages/wheel/bdist_wheel.py", line 290, in run
      cmd_obj.run()
    File "/opt/python3.7/lib/python3.7/distutils/dist.py", line 985, 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):
...
  

Пожалуйста, предложите исправление.

Ответ №1:

Вы можете использовать зависимости, отличные от Python, в гибкой среде с помощью настраиваемой среды выполнения. Из О пользовательских средах выполнения:

Пользовательские среды выполнения позволяют определять новые среды выполнения, которые могут включать дополнительные компоненты, такие как языковые интерпретаторы или серверы приложений.

Смотрите также Создание пользовательских сред выполнения.

Комментарии:

1. Я уже развернул его на App Engine Flex через пользовательскую среду выполнения. Проблема: 1. Время сборки составляет более 30 минут 2. Время масштабирования экземпляра больше. 3. Кроме того, как сказал Гийом, экземпляр не масштабируется до 0, когда он не используется.

Ответ №2:

Если вы хотите настроить свою среду, вы можете использовать контейнер. Разверните его на App Engine flexible, как предложил Дастин, но будьте осторожны, App Engine Flex не масштабируется до 0, и, таким образом, вы платите, даже если ваш сервис не используется.

Поскольку у вас есть контейнер, я рекомендую вам взглянуть на Cloud Run. Он похож на App Engine, но масштабируется до 0 и является очень мощным.