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

Python脚本def定义__init__方法时报SyntaxError无效语法是什么原因?

错误原因

你遇到的SyntaxError大概率是实际运行脚本的Python版本低于3.5导致的:

  • Python 3.5才开始原生支持函数参数类型注解语法,低于3.5的版本(比如Python2)识别不了参数后面跟:的类型注解写法,会直接报语法错误。
  • 你脚本开头的shebang行是#!/usr/bin/env python,大部分Linux/macOS系统默认python命令关联的是Python2,哪怕你激活了conda的pic2虚拟环境,如果你直接用./IgClassifyFASTA.py的方式运行脚本,系统会优先调用shebang指定的默认Python,而不是你虚拟环境里的Python3.8。

解决方案

  1. 先确认实际运行的Python版本,执行以下命令打印版本:
which python
python --version

如果输出是Python2.x,说明运行版本不对。

  1. 优先使用虚拟环境的Python解释器显式调用脚本:
python IgClassifyFASTA.py
# 或者如果python还是指向2,用python3
python3 IgClassifyFASTA.py
  1. 如果你需要直接用./的方式运行脚本,可以把第一行的shebang改成指向Python3:
#!/usr/bin/env python3
  1. 要是你必须兼容更低版本的Python,可以把所有类型注解删掉,修改对应行即可:
# 修改前
def __init__(self, fasta_path: Union[Path, str]):
# 修改后
def __init__(self, fasta_path):

所有带: Union[...]的方法定义都按这个规则修改即可。

内容的提问来源于stack exchange,提问作者Yeping Sun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 06:06:03