为什么docker映像和cpython源代码之间的typep.py在python3.7中有所不同?

时间:2019-01-04 14:39:40

标签: python docker

我发现两个python-3.7.2版本之间存在奇怪的行为。我在主机(Ubuntu 17.10)上从source编译的第一个是python docker image docker pull python:3.7

import abc
import typing


class Meta(metaclass=abc.ABCMeta):
    pass


class Base(Meta):
    pass


class Type(Base):
    pass


T = typing.TypeVar('T', bound=Type)

class Variable(typing.Generic[T], Base):
    """
        Variable docstring...
    """

class Member(Variable[T]):
    __doc__ = Variable[T].__doc__


m = Member()

assert 'Variable docstring' in m.__class__.__doc__

我的主机和docker计算机之间的断言有所不同。在docker上,docstring从_GenericAlias的{​​{1}}继承。 实际上,在从源typing.py安装python的主机上,它不包含typing.py,但是来自docker image的python在class _GenericAlias

为什么存在这种行为?以及将来如何预防?

0 个答案:

没有答案