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分支。
解决办法
- 安装支持Python3的PyPy3版本(Ubuntu系统):
sudo apt install pypy3 - 修改脚本的shebang行,指定使用PyPy3:
#!/usr/bin/env pypy3 i: float = 5.0 - 验证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
相关产品推荐
相关产品推荐

