我正在做一个项目,我被要求使用责任链编写一些验证代码。我目前在我的机器上使用python 3.9.2,但docker上的项目是3.6.5
这段代码在我的机器上运行得很好,但在Docker上会出错:
from __future__ import annotations
from abc import ABC, abstractmethod
from typing import Any, Optional
class Handler(ABC):
"""
The Handler interface declares a method for building the chain of handlers.
It also declares a method for executing a request.
"""
@abstractmethod
def set_next(self, handler: Handler) -> Handler:
pass
@abstractmethod
def handle(self, request) -> Optional[str]:
pass
字符串
显示的错误如下:
from __future__ import annotations
django_1 | ^
django_1 | SyntaxError: future feature annotations is not defined
型
有没有办法让代码在python 3.6.5上工作?
1条答案
按热度按时间zqry0prt1#
TLDR:
Python 3.6+
已到达循环结束,更新为Python >=3.7
正如@ForceBru所指出的,
annotations
作为__future__
的一部分是在Python3.7+
中引入的,所以你需要手动添加de依赖关系(或者升级到python
版本,我建议这样做)。一个名为
future-annotations
的(deprecated)软件包可能是一个允许旧系统继续工作的解决方案。按照PyPi说明:pip install future-annotations
个