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

PyPy中使用Type annotations报错但Python3正常,原因何在?

问题原因分析与解决办法

核心原因

你当前使用的PyPy是Python 2.7兼容版本,而代码中的变量类型注解(i: float = 5.0)是Python 3.5及以上版本才引入的语法特性,Python 2.7完全不支持该语法,因此PyPy运行时触发语法错误。

从你提供的版本信息可以确认:

pypy --version
# 输出:Python 2.7.18 (7.3.9+dfsg-1, Apr 01 2022, 21:40:34)
# [PyPy 7.3.9 with GCC 11.2.0]

这表明你安装的是PyPy2分支,而非支持Python3的PyPy3分支。

解决办法

  1. 安装支持Python3的PyPy3版本(Ubuntu系统):
    sudo apt install pypy3
    
  2. 修改脚本的shebang行,指定使用PyPy3:
    #!/usr/bin/env pypy3
    
    i: float = 5.0
    
  3. 验证PyPy3版本,确保其支持Python3语法:
    pypy3 --version
    # 正常输出应为类似:Python 3.9.16 (7.3.12+dfsg-1, Nov 24 2023, 08:50:38)
    # [PyPy 7.3.12 with GCC 11.4.0]
    

补充说明

PyPy分为Python2和Python3两个独立分支,早期版本以兼容Python2为主,当前主流的PyPy3分支完全兼容对应版本的Python3语法特性,安装时需注意区分版本,避免混淆。

内容的提问来源于stack exchange,提问作者TradingDerivatives.eu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 11:13:18