调用元类基础函数()参数时出错 1 必须是代码而不是 str
Posted
技术标签:
【中文标题】调用元类基础函数()参数时出错 1 必须是代码而不是 str【英文标题】:error when calling the metaclass bases function() argument 1 must be code not str 【发布时间】:2017-07-24 13:28:06 【问题描述】:我按照这个设置了 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,所以我将模块目录设置为这个路径
有人知道这里有什么问题吗?我真的卡住了,请帮忙。
【问题讨论】:
【参考方案1】:ExecuteScript 使用 Jython(不是 Python)来执行纯 Python 脚本,因此任何导入的包(及其依赖项)也必须是纯 Python 模块。我猜 TwilioRestClient (或其依赖项)包括一个非纯 Python 模块(例如编译的 C)。对于这些情况,Jython(以及 ExecuteScript)将不起作用。
另一种方法是使用 ExecuteStreamCommand 处理器,您可以使用它向您的 Python 解释器(和脚本)发送外壳。
【讨论】:
以上是关于调用元类基础函数()参数时出错 1 必须是代码而不是 str的主要内容,如果未能解决你的问题,请参考以下文章