Как получить библиотеку Python xmlsec, работающую в Pivotal Cloud Foundry? - PullRequest
0 голосов
/ 04 сентября 2018

Я пытаюсь заставить модуль python python3-saml работать над облачным литейным приложением, использующим стандартный пакет python buildpack и стек cflinuxfs2. Этот модуль опирается на модуль Python xmlsec в качестве зависимости, но я, к сожалению, сталкиваюсь с проблемами с его работой.

Я собрал файл требований и продал все зависимости Python, но я продолжаю получать следующую ошибку, когда запускаю команду "cf push".

            Running setup.py install for xmlsec: started
              Running setup.py install for xmlsec: finished with status 'error'
              Complete output from command /tmp/contents998689849/deps/0/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-lwwtrplp/xmlsec/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-qwoda574-record/install-record.txt --single-version-externally-managed --compile:
              running install
              running build
              running build_ext
              *********************************************************************************
              Could not find xmlsec1 config. Are libxmlsec1-dev and pkg-config installed?
              *********************************************************************************

              ----------------------------------------
          Command "/tmp/contents998689849/deps/0/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-lwwtrplp/xmlsec/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-qwoda574-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-lwwtrplp/xmlsec/
          pip install has failed. You have a vendor directory, it must contain all of your dependencies.
          **ERROR** Could not install pip packages: Couldn't run pip: exit status 1
   Failed to compile droplet: Failed to run all supply scripts: exit status 14
   Exit status 223

Я попытался загрузить соответствующие libxmlsec1-dev и libxmlsec1 вручную и установить переменную окружения, чтобы ссылаться на них, но процесс подготовки, похоже, просто игнорирует их при настройке пакетов.

Могу ли я что-нибудь сделать, чтобы этот процесс заработал? Я предполагаю, что где-то есть собственный сборочный пакет, который бы справился с задачей, но я не был уверен, есть ли способ сделать это, используя вместо этого стандартный сборочный пакет python.

1 Ответ

0 голосов
/ 05 сентября 2018

Первичным вариантом будет продажа ваших зависимостей. С помощью этой опции вы создаете локально, а затем добавляете все скомпилированные биты. Хитрость заключается в том, что вам нужно создать совместимую систему, поэтому вам нужен контейнер Ubuntu Trusty PC / VM / Docker.

Следуйте этим инструкциям, затем запустите cf push и убедитесь, что у вас не игнорируется каталог vendor (удалите из .cfignore, если он существует).

https://docs.cloudfoundry.org/buildpacks/python/index.html#vendoring

Другой вариант, который должен работать, - использовать поддержку multi-buildpack. При этом вы можете использовать два билда. Первый будет Apt buildpack , а второй будет Python buildpack. Apt buildpack позволяет вам устанавливать нужные вам пакеты, которые выглядят как libxmlsec1-dev. Второй - это просто стандартный пакет сборки Python, но он будет иметь доступ к тому, что было установлено через пакет сборки Apt.

Вы можете увидеть инструкции здесь: https://docs.cloudfoundry.org/buildpacks/use-multiple-buildpacks.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...