将外部库添加到操作
Add external library to an action
我正在 IBM-Clound 函数中开发一个在 Watson Assistant 中调用的操作 dialog.This 操作必须向 WS 发出 SOAP 请求。问题是当我尝试导入 suds 库时,因为它不在默认的 python 库中。如何添加库?
提前致谢。
您可以使用虚拟环境 virtualenv 打包 Python 依赖项。例如,虚拟环境允许您 link 可以使用 pip 安装的附加包。
要安装依赖项,将它们打包到虚拟环境中,并创建兼容的 OpenWhisk 操作:
创建一个 requirements.txt 文件,其中包含要安装的 pip 模块和版本。
安装依赖并创建虚拟环境。虚拟环境目录必须命名为 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 文件。包含入口点的源文件必须命名为 main.py.
zip -r helloPython.zip virtualenv __main__.py
创建动作 helloPython。
ibmcloud fn action create helloPython --kind python-jessie:3 helloPython.zip
有关详细信息,请参阅此 link
我正在 IBM-Clound 函数中开发一个在 Watson Assistant 中调用的操作 dialog.This 操作必须向 WS 发出 SOAP 请求。问题是当我尝试导入 suds 库时,因为它不在默认的 python 库中。如何添加库?
提前致谢。
您可以使用虚拟环境 virtualenv 打包 Python 依赖项。例如,虚拟环境允许您 link 可以使用 pip 安装的附加包。
要安装依赖项,将它们打包到虚拟环境中,并创建兼容的 OpenWhisk 操作:
创建一个 requirements.txt 文件,其中包含要安装的 pip 模块和版本。
安装依赖并创建虚拟环境。虚拟环境目录必须命名为 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 文件。包含入口点的源文件必须命名为 main.py.
zip -r helloPython.zip virtualenv __main__.py
创建动作 helloPython。
ibmcloud fn action create helloPython --kind python-jessie:3 helloPython.zip
有关详细信息,请参阅此 link