Добавить внешнюю библиотеку к действию - PullRequest
0 голосов
/ 03 января 2019

Я разрабатываю действие в функциях IBM-Clound, которое вызывается в диалоговом окне Watson Assistant. Это действие должно сделать SOAP-петицию к WS. Проблема в том, что я пытаюсь импортировать библиотеку suds, потому что ее нет в библиотеках python по умолчанию. Как я могу добавить библиотеку?

Заранее спасибо.

1 Ответ

0 голосов
/ 03 января 2019

Вы можете упаковать зависимости Python, используя виртуальную среду virtualenv.Виртуальная среда позволяет связывать дополнительные пакеты, которые можно установить, например, с помощью pip .

Чтобы установить зависимости, упакуйте их в виртуальную среду и создайте совместимое действие OpenWhisk:

Создайте файл needs.txt , содержащий модули pip и версии для установки.

Установите зависимости и создайте виртуальную среду.Каталог виртуальной среды должен называться virtualenv.Для обеспечения совместимости с контейнером времени выполнения OpenWhisk при установке пакетов в виртуальной среде должен использоваться образ, соответствующий виду.

Для доброго python: 2 используйте образ докера openwhisk / python2action.

Для доброго питона: 3.6 используйте образ докера ibmfunctions / action-python-v3.6.

Для доброго питона: 3.7 используйте образ докера ibmfunctions / action-python-v3.7.

docker run --rm -v "$PWD:/tmp" ibmfunctions/action-python-v3 bash  -c "cd tmp && virtualenv virtualenv && source virtualenv/bin/activate && pip install -r requirements.txt"

Упакуйте каталог virtualenv и любые дополнительные файлы Python.Исходный файл, содержащий точку входа, должен иметь имя main .py.

 zip -r helloPython.zip virtualenv __main__.py

Создать действие helloPython.

ibmcloud fn action create helloPython --kind python-jessie:3 helloPython.zip

Подробнее см. В этом ссылка

...