【问题标题】:Add external library to an action将外部库添加到操作
【发布时间】:2019-01-03 10:53:46
【问题描述】:

我正在 IBM-Clound 函数中开发一个在 Watson Assistant 对话框中调用的操作。该操作必须向 WS 发出 SOAP 请求。问题是当我尝试导入 suds 库时,因为它不在默认的 python 库中。如何添加库?

提前致谢。

【问题讨论】:

标签: ibm-cloud ibm-cloud-functions


【解决方案1】:

您可以使用虚拟环境 virtualenv 来打包 Python 依赖项。例如,虚拟环境允许您链接可以使用 pip 安装的其他软件包。

要安装依赖项,将它们打包在虚拟环境中,并创建兼容的 OpenWhisk 操作:

创建一个包含要安装的 pip 模块和版本的 requirements.txt 文件。

安装依赖并创建虚拟环境。虚拟环境目录必须命名为 virtualenv。为确保与 OpenWhisk 运行时容器的兼容性,虚拟环境中的软件包安装必须使用与种类对应的映像。

对于种类 python:2,请使用 docker 镜像 openwhisk/python2action。

对于种类 python:3.6,请使用 docker 镜像 ibmfunctions/action-python-v3.6。

对于种类 python:3.7,请使用 docker 镜像 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 文件。包含入口点的源文件必须命名为 ma​​in.py。

 zip -r helloPython.zip virtualenv __main__.py

创建动作 helloPython。

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

更多详情请参考link

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-11-12
    • 2014-08-25
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-19
    相关资源
    最近更新 更多