Docker部署Python项目报错SyntaxError: future feature annotations未定义
报错原因
- 核心问题是Docker容器内Python版本与依赖版本不兼容:你当前容器内使用的是Python 3.6,而安装的新版
fastcore依赖中用到了from __future__ import annotations语法,该语法仅在Python 3.7及以上版本中被支持,因此触发SyntaxError。
修复方法
二选一即可:
- 升级容器内Python版本:修改Dockerfile的基础镜像,将Python 3.6的基础镜像替换为3.7及以上版本,优先选择3.8、3.9这类和fastai生态兼容性经过验证的版本,例如使用
python:3.9-slim作为基础镜像,重新构建镜像即可。 - 固定依赖版本适配Python3.6:如果项目有特殊要求必须使用Python 3.6,在安装依赖时指定fastai、fastcore为最后兼容Python3.6的历史版本,安装命令如下:
pip install fastcore==1.3.29 fastai==2.5.3
执行安装后重新启动服务即可解决该报错。
内容的提问来源于stack exchange,提问作者BenZenoVKa
相关产品推荐
相关产品推荐

