You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac环境下Python3运行Pattern3代码报错,求排查原因

问题:Mac下Pattern3代码运行报错'<=‘ not supported between instances of 'NoneType' and 'int'

在Mac系统的Python3环境中运行以下标准Pattern3代码时,持续出现错误:'<=‘ not supported between instances of 'NoneType' and 'int',但同学在Windows环境运行同一代码未遇到问题,代码未做任何修改,怀疑是系统环境差异导致,请求排查原因。

运行代码

%%time
from pattern.web import Twitter, hashtags
engine = Twitter(language="en")

indexid = set() 
tweets =[]

prev = None
for i in range(5):
    print(i)
    for tweet in engine.search("stock market bull or bear", start=prev, count= 20, cached=False):
        print(f" hashtag = {hashtags(tweet.text)} text = {tweet.text}, author = {tweet.author}, date = {tweet.date} ")
        if len(tweet.text) > 0 and tweet.id not in indexid:
            tweets.append(tweet.text)
            indexid.add(tweet.id)
            prev = tweet.id
print(f"Found {len(tweets)} tweets!" )
print("")

排查方向及解决建议

  • Pattern3版本差异:Mac和Windows安装的Pattern3版本不一致,旧版本可能存在跨平台兼容问题。执行pip show pattern3查看版本,确保两边版本一致,建议升级到最新稳定版:pip install --upgrade pattern3
  • Twitter API认证问题:Pattern3的Twitter引擎需要合法的API密钥才能正常获取数据。若你的Mac环境未配置API_KEY、API_SECRET等认证信息,请求可能返回空结果,导致prev在循环中未被赋值,后续触发类型比较错误。需在初始化Twitter类时传入认证参数:engine = Twitter(language="en", key="你的API_KEY", secret="你的API_SECRET")
  • 缓存或网络异常:Mac网络环境可能导致请求返回不完整,即使设置了cached=False,也可能存在本地缓存残留。尝试清理Pattern3的缓存目录,或切换网络环境测试
  • Python小版本差异:Mac自带Python与Windows安装的Python可能存在小版本差异(如3.8 vs 3.10),部分库的内部实现受版本影响。建议使用相同小版本的Python环境重新运行代码

内容的提问来源于stack exchange,提问作者Rachel McClellan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 00:10:23