Почему я получаю сообщение об ошибке при попытке отправить приложение sh в облако IBM? - PullRequest
0 голосов
/ 28 марта 2020

Я хотел бы отправить sh простое Flask приложение в облако IBM с помощью следующей команды:

%%bash
cd /resources/labs/CV0101EN/CV0101EN-capstone-project/app
ibmcloud app push

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

Журнал установки:

Cell xxx creating container for instance yyy
   Cell xxx successfully created container for instance yyy
   Downloading app package...
   Downloaded app package (14.8K)
   -----> Python Buildpack version 1.7.6
   -----> Supplying Python
          **ERROR** Could not install python: no match found for 3.6.8 in [2.7.16 2.7.17 3.5.7 3.5.9 3.6.9 3.6.10 3.7.5 3.7.6 3.8.0 3.8.1]
   Failed to compile droplet: Failed to run all supply scripts: exit status 14
   Exit status 223
   Cell xxx stopping instance yyy
   Cell xxx destroying container for instance yyy
   Cell ef638021-80ae-4fa7-b9d7-fca401983c23 successfully destroyed container for instance yyy
FAILED

Ниже приведена ошибка, которая появляется в моей записной книжке Jupiter.

Error staging application: App staging failed in the buildpack compile phase
---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
<ipython-input-32-b9984b2b336d> in <module>
----> 1 get_ipython().run_cell_magic('bash', '', 'cd /resources/labs/CV0101EN/CV0101EN-capstone-project/app\nibmcloud app push\n')

~/conda/envs/python/lib/python3.6/site-packages/IPython/core/interactiveshell.py in run_cell_magic(self, magic_name, line, cell)
   2360             with self.builtin_trap:
   2361                 args = (magic_arg_s, cell)
-> 2362                 result = fn(*args, **kwargs)
   2363             return result
   2364 

~/conda/envs/python/lib/python3.6/site-packages/IPython/core/magics/script.py in named_script_magic(line, cell)
    140             else:
    141                 line = script
--> 142             return self.shebang(line, cell)
    143 
    144         # write a basic docstring:

</home/jupyterlab/conda/envs/python/lib/python3.6/site-packages/decorator.py:decorator-gen-110> in shebang(self, line, cell)

~/conda/envs/python/lib/python3.6/site-packages/IPython/core/magic.py in <lambda>(f, *a, **k)
    185     # but it's overkill for just that one bit of state.
    186     def magic_deco(arg):
--> 187         call = lambda f, *a, **k: f(*a, **k)
    188 
    189         if callable(arg):

~/conda/envs/python/lib/python3.6/site-packages/IPython/core/magics/script.py in shebang(self, line, cell)
    243             sys.stderr.flush()
    244         if args.raise_error and p.returncode!=0:
--> 245             raise CalledProcessError(p.returncode, cell, output=out, stderr=err)
    246 
    247     def _run_script(self, p, cell, to_close):

CalledProcessError: Command 'b'cd /resources/labs/CV0101EN/CV0101EN-capstone-project/app\nibmcloud app push\n'' returned non-zero exit status 1.

Ответы [ 2 ]

1 голос
/ 31 марта 2020

Из-за ограничений размера сборочные пакеты не могут содержать все версии Python, когда-либо созданные. Как вы можете видеть в выходных данных, пакет сборки сообщает вам запрашиваемую версию и поддерживаемые версии.

ОШИБКА Не удалось установить python: не найдено совпадений для 3.6.8 в [2.7.16 2.7.17 3.5.7 3.5.9 3.6.9 3.6.10 3.7.5 3.7.6 3.8.0 3.8.1]

Короткий ответ: вам нужно указать версию в runtime.txt, которая находится в списке поддерживаемых версий. Это может быть 3.6.9 или 3.6.10.

Лучшее решение - не указывать конкретную c версию, а указывать ветвь. Если вам нужно было установить 3.6.x, вы не столкнетесь с этой проблемой снова через 2 месяца, когда 3.6.9 больше не поддерживается сборочным пакетом (сборочные пакеты постоянно обновляют зависимости, поэтому вы получаете последние исправления безопасности и исправления ошибок).

С 3.6.x вы получите только последнюю версию ветви 3.6, которая поддерживается buildpack. В приведенном выше примере это приведет к установке 3.6.10. Через два месяца, когда появится 3.6.11, вы автоматически получите 3.6.11.

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

0 голосов
/ 30 марта 2020

Изменение версии Python в файле runtime.txt, расположенном в каталоге проекта, решило проблему. Python успешно установлено.

...