我按照此设置twilio:https://www.fullstackpython.com/blog/send-sms-text-messages-python.html
当我使用python send_sms.py
在本地运行时,导入似乎正在工作然后,我使用Apache Nifi ExecuteScript处理器来执行send_sms.py文件,并假设它应该像我在本地运行文件一样。
它显示了错误:
调用元类库函数时的错误()参数1必须是代码而不是str
当我尝试:from twilio.rest import TwilioRestClient
。
Twilio安装在路径/sendsms/lib/python2.7/site-packages,因此我将模块目录设置为此路径
有谁知道这里有什么问题吗?我真的被困住了,请帮忙。
答案 0 :(得分:3)
ExecuteScript使用Jython(而不是Python)来执行纯Python脚本,因此任何导入的包(及其依赖项)也必须是纯Python模块。我猜测TwilioRestClient(或其依赖项)包含一个非纯Python模块(编译C,例如)。对于这些情况,Jython(以及ExecuteScript)将无法工作。
另一种方法是使用ExecuteStreamCommand处理器,您可以使用它处理Python解释器(和脚本)。